2017-08-07 17 views
1

私は大きなYAMLファイルを持っているので、特定のキーだけをプログラムにコメントを追加する必要があります。たとえば、キー「foo」が表示されている場合は、常に「bar」というコメントを追加する必要があります。最新のRuamelコメントの例

Ruamelを使用してYAMLファイルにコメントを追加する例(ex1ex2)を試してみましたが、これらの例のどれも動作していないようです。特に、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='') 
+0

このエラーをスローするプログラムを含めてください。入力内容の例 – Anthon

+0

こんにちはAnthon、私はex1リンクからプログラムを正確にコピーし(9ページ参照)、元の投稿に追加しました。 –

+0

virtualenv(Linux、Python 2.7.10 ruamel.yaml == 0.15.22)でコードが正常に動作する 'data ['abc'](' SyntaxError'を出した)の前に改行を追加する以外にも。その文書は間違ったサイトからのものですが、[this](http://yaml.readthedocs.io/en/latest/)をご覧ください。 – Anthon

答えて

0

をスローいくつかのサンプルコードを含めるには、だから、Ruamelの私達のクラスタのインストールはいくつかの問題を持っていることが判明しました。今のところ、Python virtualenvを使うとすべてのエラーが解決されます。 @Anthonにvirtualenvと一緒に行くことを提案してくれてありがとう。

関連する問題