Разбор файла 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.