2017-11-19 8 views
1

イムは、Pythonを使ってYAMLにキーを挿入するが、私はのpython YAML更新保存順とコメント

#This Key is used for identifying Parent tests 
    ParentTest: 
     test: 
     JOb1: myjob 
     name: testjob 
     arrive: yes 

今Imは新しいキー

params['ParentTest']['test']['new_key']='new value' 
yaml_output=yaml.dump(pipeline_params, default_flow_style=False) 
を挿入するためのコードの下に使用してYAMLの順序やコメントを維持したいと思います

正確な注文とコメントを保存するにはどうすればよいですか?以下は

が上がっ到着が、私は同様に

出力順に&コメントを残したいです:

ParentTest: 
     test: 
     arrive: yes 
     JOb1: myjob 
     name: testjob 
+0

あなたのYAMLが正しくフォーマットされていないようですが、 'Job1:'と 'name:'の後ろに空白がありません。また、 'Parent!= ParentTest' – tinita

答えて

1

PyYAMLとコメントを維持することはできませんが、ruamelありません。キーの順序も保持されます

doc = ruamel.yaml.load(yaml, Loader=ruamel.yaml.RoundTripLoader) 
doc['ParentTest']['test']['new_key'] = 'new value' 
print ruamel.yaml.dump(doc, Dumper=ruamel.yaml.RoundTripDumper) 

はこれを試してみてください。

+0

私の質問を更新しましたか? – shiv455

+0

@ shiv455注文も保存されます – tinita

関連する問題