Я новичок в YAML и искал способы проанализировать файл YAML и использовать / получить доступ к данным из проанализированного YAML.
Я встречал объяснений о том , как разобрать файл YAML, например, PyYAML учебник , « Как я могу разобрать файл YAML в Python », « Преобразовать Python Dict на объект? », Но то , что я не нашел это простой пример того, как получить доступ к данным из проанализированного файла YAML.
Предположим, у меня есть файл YAML, например:
treeroot:
branch1: branch1 text
branch2: branch2 text
Как мне получить доступ к тексту «текст ветки1»?
« Анализ YAML и Python? » Предоставляет решение, но у меня возникли проблемы с доступом к данным из более сложного файла YAML. И мне интересно, есть ли какой-нибудь стандартный способ доступа к данным из проанализированного файла YAML, возможно, что-то похожее на нотацию « итерация дерева » или « путь к элементам » или что-то, что могло бы использоваться при синтаксическом анализе файла XML?
Ответы:
Поскольку
yaml.load()
функция PyYAML анализирует документы 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
ключом.источник