2016-07-28 5 views
1

私は、yamlが各キー:値のペアを別の行にダンプするようにしようとしています。それを行うネイティブオプションはありますか?私はline_breakを試しましたが、動作させることができませんでした。ここでyaml.dumpキーと値のペアを新しい行で区切る方法は?

はコードの例です:

import yaml 

def test_yaml_dump(): 

    obj = {'key0': 1, 'key1': 2} 

    with open('test.yaml', 'w') as tmpf: 
     yaml.dump(obj, tmpf, line_break=0) 

出力は次のとおりです。

{key0: 1, key1: 2} 

私はそれになりたい:あなたはその後、ダンプする引数default_flow_style=Falseを追加する場合

{key0: 1, 
key1: 2} 

答えて

1

出力は次のようになります。

key1: 2 
key0: 1 

(いわゆるブロックスタイル)。これは、PythonディクテーションをYAMLマッピングにダンプするもっと読みやすい方法です。 ruamel.yamlでは、ruamel.yaml.round_trip_dump()を使用すると、これがデフォルトです。

import sys 
import ruamel.yaml as yaml 

obj = dict(key0=1, key1=2) 
yaml.round_trip_dump(obj, sys.stdout) 
関連する問題