如果您想向包含注释的yaml文档添加内容,您应该查看ruamel.yaml(我是其作者)。它是PyYAML的一个增强,保留了YAML文件中的注释。
如果你要的东西在这个input.yml
文件添加到序列方式:
- alpha # first one
- beta # another one
,你可以这样做:
# coding: utf-8
import ruamel.yaml
file_name = 'input.yml'
config = ruamel.yaml.load(open(file_name), ruamel.yaml.RoundTripLoader)
config.append('ω')
ruamel.yaml.dump(config, open('output.yml', 'w'),
Dumper=ruamel.yaml.RoundTripDumper)
ruamel.yaml.dump(config, open('unicode.yml', 'w'), allow_unicode=True,
Dumper=ruamel.yaml.RoundTripDumper)
并获得output.yml
(用什么我想你打电话正确转义):
- alpha # first one
- beta # another one
- "\u03C9"
and unicode.yml
:
- alpha # first one
- beta # another one
- ω
请注意,评论被保留,例如, PyYAML不这样做。 也可以在注释中添加注释。
为什么首先创建python数据并最终转储到yaml的任何原因都不适合你? – Aprillion 2015-02-06 23:41:58
我正在构建一个带有注释的人类可读的yaml文档。 – asmeurer 2015-02-07 03:06:22