我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條經(jīng)驗 獲得超5個贊
你得到雙引號,因為那是你的輸入數(shù)據(jù)。這一行:
'hostname': "\"testhost\"",
說你想要hosthame
一個以 開頭和結尾的 10 個字符的字符串作為值"
,這就是你在 yaml 中看到的。這個帶有轉義雙引號的字符串"\"testhost\""
和 yaml 版本'"testhost"'
是相同數(shù)據(jù)的兩種不同的源代碼表示。如果要在其中嵌入特殊字符(例如\n
換行符),則只需要在 yaml 中的字符串周圍加上雙引號。但yaml.dump()
會為你照顧。
添加回答
舉報
0/150
提交
取消