私は大きなYAMLファイルを持っているので、特定のキーだけをプログラムにコメントを追加する必要があります。たとえば、キー「foo」が表示されている場合は、常に「bar」というコメントを追加する必要があります。最新のRuamelコメントの例
Ruamelを使用してYAMLファイルにコメントを追加する例(ex1、ex2)を試してみましたが、これらの例のどれも動作していないようです。特に、ruamel.yaml.load()
機能を正しく使用しているように見えません。私はいつもこのエラーメッセージを受け取ります:TypeError: update() takes exactly 2 arguments (1 given)
。
私はRuamel 0.15.22とPython 2.7.8を使用しています。助言がありますか?
EDIT:例外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='')
このエラーをスローするプログラムを含めてください。入力内容の例 – Anthon
こんにちはAnthon、私はex1リンクからプログラムを正確にコピーし(9ページ参照)、元の投稿に追加しました。 –
virtualenv(Linux、Python 2.7.10 ruamel.yaml == 0.15.22)でコードが正常に動作する 'data ['abc'](' SyntaxError'を出した)の前に改行を追加する以外にも。その文書は間違ったサイトからのものですが、[this](http://yaml.readthedocs.io/en/latest/)をご覧ください。 – Anthon