2017-11-19 3 views
1

Im Einfügen eines Schlüssels in Yaml Python, aber ich möchte bestellen und Kommentare im yaml Code untenPython yaml Update- Ordnung und Kommentare

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

Im jetzt mit bewahren neuen Schlüssel

params['ParentTest']['test']['new_key']='new value' 
yaml_output=yaml.dump(pipeline_params, default_flow_style=False) 
einfügen

Wie erhalten Sie die genaue Reihenfolge und Kommentare?

Unten arrive nach oben verschoben, aber ich möchte, um erhalten & Kommentare auch

Ausgabe lautet:

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

Scheint, dass Ihr YAML nicht korrekt formatiert ist, Ihnen fehlen Leerzeichen nach 'Job1:' und 'name:'. Auch 'Parent! = ParentTest' – tinita

Antwort

1

pyyaml ​​nicht Kommentare halten, aber ruamel tut.

Versuchen Sie folgendes:

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) 

Die Reihenfolge der Tasten wird auch erhalten bleiben.

+0

Wie über den Auftrag aktualisiert meine Frage – shiv455

+0

@ shiv455 Auftrag wird auch erhalten – tinita

Verwandte Themen