Schreiben im Blockstil beim Umgang mit Yaml mit Python Verwenden Sie PyYAML
Angenommen, Sie haben eine solche Yaml-Datei
test1: test
test2: test
Es kann im Wörterbuchtyp wie folgt gelesen werden.
>>> import yaml
>>> f = open("test.yml", "r+")
>>> data = yaml.load(f)
>>> data
{'test1': 'test', 'test2': 'test'}
Schreiben Sie beim Schreiben wie folgt mit dump ()
.
>>> data
{'test1': 'test', 'test2': 'test'}
>>> f.write(yaml.dump(data))
>>> f.close()
Wenn man sich die schriftliche Datei test.yml ansieht, sieht es wie folgt aus, was nicht wie erwartet ist. Sehr schwer zu sehen.
test1: test
test2: test
{test1: test, test2: test}
Um im Blockstil anstelle des Flussstils zu schreiben, setzen Sie default_flow_style = False
bei dump ()
.
>>> f.write(yaml.dump(data, default_flow_style=False))
test1: test
test2: test
test1: test
test2: test
Es ist wie erwartet.
Beim Konvertieren eines Instanzobjekts in yaml mit dump ()
tritt das Problem auf, dass das Tag des Instanzobjekts ausgegeben wird.
Zum Beispiel Ordered Dict
das ist
So ändern Sie das Verhalten beim Laden / Dumping von Yaml mit PyYAML und seinen Details
.
http://gihyo.jp/dev/serial/01/yaml_library/0003 http://blog.panicblanket.com/archives/1076
Recommended Posts