2013-02-10 182 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']foo被你的YAML解析器返回的对象访问x

的Python代码来获得foo看起来是这样的:

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

我使用safe_load,因为你很可能不打算从你的YAML文档中创建任意Python对象,因此要使用函数如果传递了恶意YAML文档,则无法打开安全漏洞。