我有一个大的YAML文件,我需要通过编程方式为某些键添加注释。例如,如果我看到一个键“foo”,我总是需要添加一个注释“bar”。在
我尝试过使用Ruamel向YAML文件添加注释的示例(ex1,ex2),但这些示例似乎都不起作用。尤其是,我甚至不能正确地使用ruamel.yaml.load()
函数。我总是收到这个错误消息:TypeError: update() takes exactly 2 arguments (1 given)
。在
我使用的是ruamel0.15.22和python2.7.8。有什么建议吗?在
编辑:包括一些抛出TypeError的示例代码
from __future__ import print_function
import ruamel.yaml
inp = """\
abc:
- a # comment 1
xyz:
a: 1 # comment 2
b: 2
c: 3
d: 4
e: 5
f: 6 # comment 3
"""
data = ruamel.yaml.load(inp, ruamel.yaml.RoundTripLoader)
data['abc'].append('b')
data['abc'].yaml_add_eol_comment('comment 4', 1) # takes column of comment 1
data['xyz'].yaml_add_eol_comment('comment 5', 'c') # takes column of comment 2
data['xyz'].yaml_add_eol_comment('comment 6', 'e') # takes column of comment 3
data['xyz'].yaml_add_eol_comment('comment 7', 'd', column=20)
print(ruamel.yaml.dump(data, Dumper=ruamel.yaml.RoundTripDumper), end='')
所以我们的集群安装Ruamel有一些问题。目前,使用Python virtualenv可以解决所有错误。感谢@Anthon提出与virtualenv合作的建议。在
相关问题 更多 >
编程相关推荐