关于xml:在Python中解析YAML文件并访问数据?

Parsing a YAML file in Python, and accessing the data?

我不熟悉yaml,一直在寻找解析yaml文件和使用/访问解析后的yaml中的数据的方法。

我遇到过关于如何解析yaml文件的解释,例如,pyyaml教程,"如何用python解析yaml文件","将python dict转换为object?"但是我还没有找到一个关于如何从解析的yaml文件访问数据的简单示例。

假设我有一个yaml文件,例如:

1
2
3
 treeroot:
     branch1: branch1 text
     branch2: branch2 text

如何访问文本"Branch1文本"?

"yaml解析和python?"提供了一个解决方案,但我在从更复杂的yaml文件访问数据时遇到了问题。而且,我想知道是否有一些从解析的yaml文件访问数据的标准方法,可能类似于"树迭代"或"elementpath"符号,或者在解析XML文件时使用的符号?


由于pyyaml的yaml.load()函数将yaml文档解析为本机python数据结构,因此您只需通过键或索引访问项。使用您链接的问题中的示例:

1
2
3
import yaml
with open('tree.yaml', 'r') as f:
    doc = yaml.load(f)

要访问branch1 text,您将使用:

1
2
3
txt = doc["treeroot"]["branch1"]
print txt
"branch1 text"

因为在yaml文档中,branch1键的值在treeroot键下。