【发布时间】:2018-05-12 13:05:57
【问题描述】:
我正在尝试将 Python 字典转储到 YAML,其中包含一些字符串作为值字段。
import yaml
str1 = "hello"
str2 = "world"
mystr = "\"" + str1 + str(" ") + str2 + "\""
mydict = {"a" : mystr}
f = open("temp.yaml", "w")
yaml.dump(mydict, f, default_flow_style = False, \
explicit_start = "---", explicit_end = "...", encoding = 'UTF-8')
f.close()
我得到的 YAML 是:
a: '"hello
world"'
注意,值“hello world”正在溢出到下一行。 我使用的是 python 3.5,YAML 模块版本是 3.11
谁能告诉我如何让 YAML 看起来像下面这样?
a: "hello world"
【问题讨论】:
-
1.您可能想要转储
mydict而不是mystr。 2. 我用 python 3.5.3 和 pyyaml 3.12 得到{a: '"hello world"'}。你确定你展示的是你使用的真实代码吗? -
3.如果你想用双引号输出值,你必须告诉 PyYAML(对不起,目前不知道是否有这个选项)。从我的输出
{a: '"hello world"'}中可以看出,在转储之前向字符串添加双引号不会产生预期的效果 -
@tinita : 是的,我正在倾销 'mydict' 而不是 'mystr' ...在上面编辑过...我也可以看到双引号前面的单引号...跨度>
标签: yaml python-3.5 pyyaml