使用 pyyaml 序列化字符串而不带省略号

asm*_*rer 5 python yaml pyyaml

我正在尝试yaml.dump与 pyyaml一起使用将字符串转换为 yaml 安全的内容(即,所有需要转义的内容都已正确转义)。然后我会将这些字符串插入到一个大的 yaml 文档中。

问题是yaml.dump想要将字符串视为整个文档,并添加...(文档结尾),例如

In [4]: yaml.dump("a string")
Out[4]: 'a string\n...\n'
Run Code Online (Sandbox Code Playgroud)

我如何让它不添加\n...\n,而不仅仅是手动删除它?或者有没有更好的方法来使用 pyyaml 引用字符串以供 yaml 使用?

Zer*_*eus 6

提供一个default_style论点似乎在某种程度上有所帮助:

>>> yaml.dump("a string", default_style='"')
'"a string"\n'
Run Code Online (Sandbox Code Playgroud)

还有一个line_break论点,但虽然它适用于更改终止换行符:

>>> yaml.dump("a string", default_style='"', line_break="\r")
'"a string"\r'
Run Code Online (Sandbox Code Playgroud)

...它似乎无法删除它:

>>> yaml.dump("a string", default_style='"', line_break="")
'"a string"\n'
>>> yaml.dump("a string", default_style='"', line_break=None)
'"a string"\n'
>>> yaml.dump("a string", default_style='"', line_break=False)
'"a string"\n'
Run Code Online (Sandbox Code Playgroud)