Hinweis zu PyYAML
Wenn Sie eine Yaml-Datei mit PyYAML lesen, wird sie standardmäßig als normales Wörterbuch gelesen Die Reihenfolge der Dateien kann nicht garantiert werden.
Zum Beispiel, wenn Sie eine solche Yaml-Datei haben
data.yml
aaa:
a1: 1
a2: 2
a3: 3
bbb:
b1: 1
b2: 2
b3: 3
ccc:
c1: 1
c2: 2
b3: 3
Wenn Sie normalerweise yaml.load
und ausgeben
yaml_load.py
import yaml
data = yaml.load(file("data.yml"))
for k1, v1 in data.items():
for k2, v2 in v1.items():
print("%s - %s - %s" % (k1, k2, v2))
Es sieht aus wie das.
Ausführungsergebnis
aaa - a1 - 1
aaa - a3 - 3
aaa - a2 - 2
bbb - b1 - 1
bbb - b2 - 2
bbb - b3 - 3
ccc - c2 - 2
ccc - c1 - 1
ccc - b3 - 3
Wenn Sie in der in der Datei beschriebenen Reihenfolge lesen möchten, lesen Sie sie als OrderedDict.
yaml_load.py
import yaml
from collections import OrderedDict
#Füge das hinzu
yaml.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG,
lambda loader, node: OrderedDict(loader.construct_pairs(node)))
data = yaml.load(file("data.yml"))
for k1, v1 in data.items():
for k2, v2 in v1.items():
print("%s - %s - %s" % (k1, k2, v2))
Jetzt können Sie die Bestellung behalten und lesen.
Ausführungsergebnis
aaa - a1 - 1
aaa - a2 - 2
aaa - a3 - 3
bbb - b1 - 1
bbb - b2 - 2
bbb - b3 - 3
ccc - c1 - 1
ccc - c2 - 2
ccc - b3 - 3
Around Wurde verwiesen
das ist alles
Recommended Posts