Разбор файла YAML в Python и доступ к данным?
Я новичок в YAML и искал способы анализа файла YAML и использования/доступа к данным из проанализированного YAML.
Я столкнулся с объяснениями о том, как разбирать файл YAML, например, PyYAML tutorial, "Как я могу разобрать файл YAML в Python", "Преобразовать Python dict на объект?", но то, что я не нашел представляет собой простой пример того, как получить доступ к данным из проанализированного файла YAML.
Предположим, у меня есть файл YAML, например:
treeroot:
branch1: branch1 text
branch2: branch2 text
Как мне получить доступ к тексту "text1 branch1"?
"YAML-анализ и Python?" предоставляет решение, но у меня возникли проблемы с доступом к данным из более сложного файла YAML. И мне интересно, есть ли стандартный способ доступа к данным из проанализированного файла YAML, возможно, что-то похожее на " tree итерация" или " elementpath" нотация или что-то, что будет использоваться при анализе XML файла?
Ответы
Ответ 1
Так как функция PyYAML yaml.load()
анализирует документы YAML в собственных структурах данных Python, вы можете просто обращаться к элементам с помощью ключа или индекса. Используя пример из связанного с вами вопроса:
import yaml
with open('tree.yaml', 'r') as f:
doc = yaml.load(f)
Чтобы получить доступ к branch1 text
, вы должны использовать:
txt = doc["treeroot"]["branch1"]
print txt
"branch1 text"
потому что в вашем документе YAML значение клавиши branch1
находится под клавишей treeroot
.