2013-02-10 250 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文檔,則無法打開安全漏洞。