如何在使用python生成的yaml文件中强制打印引号?

时间:2015-10-23 22:43:34

标签: python yaml

我正在使用python从excel读取值并使用__bool__()生成yaml文件。

问题 - 我希望在yaml文件的单引号中显示一个值。例如:yaml.safe_dumps

我尝试了几个选项,我将输出设为'test''''test'''test

知道如何在yaml文件中显示单引号。

以下是完整的代码:

!python/unicode 'test'

1 个答案:

答案 0 :(得分:0)

PyYAML发出的表单与您请求的输出完全在语义上等效。 PyYAML没有任何承诺(也没有任何等效的库可以合理地期望做出承诺)来支持每个可能的语义等效序列化。

也就是说:

yaml.safe_load('yaml') == yaml.safe_load("'yaml'")

...是一个真实的语句,因此任何以不同方式处理yaml'yaml'的YAML解析器都是错误的;你应该向那个解析器的维护者报告这些错误。

值得注意的是,许多磁盘格式确实指定并支持明确定义的规范形式。 YAML的规范对此有一个部分定义,PyYAML支持它作为输出格式。但是,此格式等同于您要求的内容:

>>> print yaml.safe_dump('yaml', canonical=True)
---
!!str "yaml"