我yaml在 Python 脚本中使用该模块生成 YAML 文件。下面是一个例子:import yamlclass MyDumper(yaml.Dumper): def increase_indent(self, flow=False, indentless=False): return super(MyDumper, self).increase_indent(flow, False)foo = { 'instance_type': 'test', 'hostname': "\"testhost\"", 'name': 'foo', 'my_list': [ {'foo': 'test', 'bar': 'test2'}, {'foo': 'test3', 'bar': 'test4'}], 'hello': 'world',}print yaml.dump(foo, Dumper=MyDumper, default_flow_style=False)输出:hello: worldhostname: '"testhost"'instance_type: testmy_list: - bar: test2 foo: test - bar: test4 foo: test3name: foo在上面的输出主机名值有单引号和双引号,我只想要双引号。预期输出:hello: worldhostname: "testhost"instance_type: testmy_list: - bar: test2 foo: test - bar: test4 foo: test3name: foo
3 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
你得到双引号,因为那是你的输入数据。这一行:
'hostname': "\"testhost\"",
说你想要hosthame
一个以 开头和结尾的 10 个字符的字符串作为值"
,这就是你在 yaml 中看到的。这个带有转义双引号的字符串"\"testhost\""
和 yaml 版本'"testhost"'
是相同数据的两种不同的源代码表示。如果要在其中嵌入特殊字符(例如\n
换行符),则只需要在 yaml 中的字符串周围加上双引号。但yaml.dump()
会为你照顾。
添加回答
举报
0/150
提交
取消