【发布时间】:2019-09-12 12:07:07
【问题描述】:
我正在使用PyYAML library 将 json 转换为 yaml。但是引号会从字符串值中删除,而不应该这样做。它们只能从键中移除。
我使用了带有 yaml 转储功能的 default_flow_style 选项,如下图所示:
import yaml
x = {'name':'Alice','location':'New York', 'profession':'coder'}
yaml.dump(x, default_flow_style=False)
实际结果是:'location: New York\nname: Alice\nprofession: coder\n'
当想要的结果是:"location: 'New York'\nname: 'Alice'\nprofession: 'coder'\n"
【问题讨论】:
-
从 YAML 的角度来看,它们是等价的。引号大多是可选的。
-
从这个意义上说,整个转换是可选的,因为 YAML 是 JSON 的超集。
-
有趣。我不知道它们被认为是等效的,并且 YAML 是 JSON 的超集。
-
@LeoE YAML 自 2009 年发布 1.2 版以来一直是 JSON 的超集,但您使用的(过时的)PyYAML 库仅支持 YAML 1.1。
-
谢谢@Anthon ...这就是我可能感到困惑的地方。我不知道为什么它被认为是python的标准yaml库,即使它已经过时了。