2013-02-10 3 views

ответ

2

Вы не можете! Вы отправили YAML в файл, содержащий только один ключ, a, который отображает значение "b:x test2 test test3" - вы можете легко проверить это на pasting your YAML here.

Причина в том, что вы не можете смешивать пары key: value и элементы без ключа (например, в массиве).

Однако предположим, что у вас есть правильный YAML, который содержит объект a, содержащий другой объект, который отображает b в x. Например это:

a: 
    b: x 
    c: test2 
    d: test 
    e: test3 

В этом случае вы будете использовать для доступа к foo['a']['b']x с foo быть объектом возвращенный YAML парсер.

код питона, чтобы получить foo может выглядеть следующим образом:

import yaml 
with open('yourfile.yaml') as f: 
    foo = yaml.safe_load(f) 

Я использую safe_load, так как вы, скорее всего, не намерены создавать произвольные объекты Python из вашего YAML документа и, таким образом, вы хотите использовать функция, которая не может открыть отверстие безопасности, если оно когда-либо передается вредоносным документом YAML.

Смежные вопросы