Jestem nowy w YAML i szukałem sposobów analizowania pliku YAML i używania / dostępu do danych z przeanalizowanego YAML.
Natknąłem się na wyjaśnienia, jak przeanalizować plik YAML, na przykład samouczek PyYAML , „ Jak mogę przeanalizować plik YAML w Pythonie ”, „ Konwertować dyktowanie Pythona na obiekt? ”, Ale nie znalazłem prosty przykład, jak uzyskać dostęp do danych z przeanalizowanego pliku YAML.
Załóżmy, że mam plik YAML, taki jak:
treeroot:
branch1: branch1 text
branch2: branch2 text
Jak uzyskać dostęp do tekstu „branch1 text”?
„ Analiza YAML i Python? ” Dostarcza rozwiązania, ale miałem problemy z dostępem do danych z bardziej złożonego pliku YAML. Zastanawiam się, czy istnieje jakiś standardowy sposób uzyskiwania dostępu do danych z przeanalizowanego pliku YAML, prawdopodobnie coś podobnego do notacji „ iteracji drzewa ” lub „ ścieżki elementu ” lub czegoś, co byłoby używane podczas analizowania pliku XML?
Odpowiedzi:
Ponieważ
yaml.load()
funkcja PyYAML analizuje dokumenty YAML do natywnych struktur danych Pythona, możesz po prostu uzyskać dostęp do elementów za pomocą klucza lub indeksu. Korzystając z przykładu z pytania, które podałeś:import yaml with open('tree.yaml', 'r') as f: doc = yaml.load(f)
Aby uzyskać dostęp
branch1 text
, użyj:txt = doc["treeroot"]["branch1"] print txt "branch1 text"
ponieważ w dokumencie YAML wartość
branch1
klucza jest podtreeroot
kluczem.źródło