2016-07-30 12 views
1

を失敗:はpythonでyaml.loadを使用しようとすると、私は<code>yaml.load()</code>の使用を理解しようとしていますが、でも、この単純なコードを実行すると、私のために動作しません

import yaml 
document = """ 
    a: 1 
    b: 
    c: 3 
    d: 4 
""" 
print yaml.dump(yaml.load(document), default_flow_style=False) 

私はこのスクリプトを実行すると得られています次のエラー - AttributeError: 'module' object has no attribute 'dump'

このコードは、PyYAMLのドキュメント(http://pyyaml.org/wiki/PyYAMLDocumentation)から取得したものです。

私はここで何が欠けていますか? PythonでYAMLを操作する方法を知るにはどうすればよいですか?

答えて

1

例をyaml.pyと呼んだので、テストプログラムはimport yamlステートメントでインポートされ、dumpルーチンはありません。 yaml.pyの名前をtest_yaml.pyのように変更してください。

あなたはまた、使用すべき:dump() 2番目のパラメータは、出力が最初にそのオブジェクトに.getvalue()によって取得すること、次いで、StringIO()オブジェクトに書き込まさせるようにストリームを提供しないよう

import sys 

yaml.dump(yaml.load(document, sys.stdout, default_flow_style=False) 

、及びsys.stdoutに書き込まれます。後者を直接行う方が速いです。

+0

これは、おかげで、ありがとう! –

関連する問題