2017-08-07 66 views
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='') 
+0

請包括程序,因爲你有它引發的錯誤。並且是您輸入的一個示例部分。 – Anthon

+0

嗨安東尼,我完全從ex1鏈接複製了該程序(請參閱第9頁),並且已將它添加到原始帖子中。 –

+0

除了在'data ['abc'](給出'SyntaxError')之前在virtualenv(Linux,Python 2.7.10 ruamel.yaml == 0.15.22)中運行良好之外添加一個換行符。但該文件來自錯誤的網站,您應該查看[this](http://yaml.readthedocs.io/en/latest/)。 – Anthon

回答

0

所以事實證明,Ruamel我們的集羣的安裝有一定的問題的一些示例代碼。目前,使用Python virtualenv可以解決所有錯誤。感謝@安永的建議去與virtualenv。