1
我有一個很大的YAML文件,我需要以編程方式爲某些鍵添加註釋。例如,如果我看到一個鍵「foo」,我總是需要添加一個說「bar」的註釋。最新Ruamel評論示例
我試過看例子(ex1,ex2)使用Ruamel添加評論到YAML文件,但這些例子似乎都沒有工作。特別是,我似乎甚至不能正確使用ruamel.yaml.load()
函數。我總是收到此錯誤消息:TypeError: update() takes exactly 2 arguments (1 given)
。
我正在使用Ruamel 0.15.22和Python 2.7.8。有什麼建議麼?
編輯:包括其拋出類型錯誤
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='')
請包括程序,因爲你有它引發的錯誤。並且是您輸入的一個示例部分。 – Anthon
嗨安東尼,我完全從ex1鏈接複製了該程序(請參閱第9頁),並且已將它添加到原始帖子中。 –
除了在'data ['abc'](給出'SyntaxError')之前在virtualenv(Linux,Python 2.7.10 ruamel.yaml == 0.15.22)中運行良好之外添加一個換行符。但該文件來自錯誤的網站,您應該查看[this](http://yaml.readthedocs.io/en/latest/)。 – Anthon