为了账号安全,请及时绑定邮箱和手机立即绑定

Python yaml 在引号中生成几个值

Python yaml 在引号中生成几个值

回首忆惘然 2021-06-17 14:00:39
我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()会为你照顾。


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信