Python YAML:控制输出格式

use*_*521 22 python formatting yaml

我的文件读取用户输入(如userid,密码..).并将数据设置为x.yml文件.

x.yml文件的内容是

{user: id}
Run Code Online (Sandbox Code Playgroud)

但相反,我希望内容为

user: id
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Pas*_*ion 45

正如评论中所提到的,python YAML库是适合这项工作的工具.要获得所需的输出,需要将关键字参数传递default_flow_style=Falseyaml.dump:

>>> x = {"user" : 123}
>>> with open("output_file.yml", "w") as output_stream:
...     yaml.dump(x, output_stream, default_flow_style=False)
Run Code Online (Sandbox Code Playgroud)

文件"output_file.yml"将包含:

user: 123
Run Code Online (Sandbox Code Playgroud)

有关如何自定义的更多信息,yaml.dump请访问http://pyyaml.org/wiki/PyYAMLDocumentation.

  • 这个选项似乎也影响`lists`和`tuples`有没有办法让它只影响`dicts`?或者,有没有办法告诉它只扩展到一定深度? (2认同)