python - 在 Python 中解析 YAML 文件并访问数据?

标签 python xml parsing yaml

我是 YAML 新手,一直在寻找解析 YAML 文件和使用/访问解析后的 YAML 数据的方法。

我遇到过关于如何解析 YAML 文件的解释,例如 PyYAML tutorial 、“How can I parse a YAML file in Python”、“Convert Python dict to object?”,但我还没有找到一个关于如何从已解析的 YAML 文件中访问数据的简单示例。

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

 treeroot:
     branch1: branch1 text
     branch2: branch2 text

如何访问文本“branch1 text”?

YAML parsing and Python?”提供了一个解决方案,但我在访问更复杂的 YAML 文件中的数据时遇到了问题。而且,我想知道是否有某种标准方法可以从已解析的 YAML 文件中访问数据,可能类似于“tree iteration”或“elementpath”符号或在解析 XML 文件时使用的符号?

最佳答案

由于 PyYAML 的 yaml.load() 函数将 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 键下。

关于python - 在 Python 中解析 YAML 文件并访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127686/

相关文章:

python - 为什么我的 isclass 函数会得到 false?

javascript - 如何使用非递归堆栈编写递归函数?

xml - liquibase数据库重构xml createIndex

java - 在 Java 中解析元标记

java - 使用 xml 文件的简单 jfreechart 条形图

java - 将 URI 字符串解析为名称-值集合

regex - 正则表达式用于构建解析器吗?

python - 通过 Websockets 在 Nodejs 和 Python 之间通信

python - 为什么全屏 WebKit 会留下边框?

python - 在python中多次使用数组内部的 'range'