Ich bin neu in YAML und habe nach Möglichkeiten gesucht, eine YAML-Datei zu analysieren und die Daten aus der analysierten YAML zu verwenden / darauf zuzugreifen.
Ich habe Erklärungen zum Parsen der YAML-Datei gefunden, zum Beispiel das PyYAML- Tutorial " Wie kann ich eine YAML-Datei in Python analysieren ", " Python-Dikt in Objekt konvertieren? ", Aber was ich nicht gefunden habe, ist a einfaches Beispiel für den Zugriff auf die Daten aus der analysierten YAML-Datei.
Angenommen, ich habe eine YAML-Datei wie:
treeroot:
branch1: branch1 text
branch2: branch2 text
Wie greife ich auf den Text "branch1 text" zu?
" YAML-Analyse und Python? " Bietet eine Lösung, aber ich hatte Probleme beim Zugriff auf die Daten aus einer komplexeren YAML-Datei. Und ich frage mich , ob es für den Zugriff auf die Daten von einer analysierten YAML - Datei, die möglicherweise etwas Ähnliches wie „einige Standardmethode ist Baum Iteration “ oder „ elementpath “ Notation oder etwas , das verwendet werden würde , wenn eine XML - Datei Parsen?
Antworten:
Da die
yaml.load()
Funktion von PyYAML YAML-Dokumente in native Python-Datenstrukturen analysiert, können Sie einfach über Schlüssel oder Index auf Elemente zugreifen. Verwenden Sie das Beispiel aus der von Ihnen verlinkten Frage:import yaml with open('tree.yaml', 'r') as f: doc = yaml.load(f)
Um darauf zuzugreifen
branch1 text
, würden Sie verwenden:txt = doc["treeroot"]["branch1"] print txt "branch1 text"
weil in Ihrem YAML-Dokument der Wert des
branch1
Schlüssels unter demtreeroot
Schlüssel liegt.quelle