当前位置: 首页 > 面试题库 >

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

董高朗
2023-03-14
问题内容

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

我遇到过有关如何解析YAML文件的解释,例如PyYAML教程“如何在Python中解析YAML文件”,“将Python字典转换为对象? ”,但是我没有找到一个关于如何从已解析的YAML文件访问数据的简单示例。

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

 treeroot:
     branch1: branch1 text
     branch2: branch2 text

如何访问文本“ branch1文本”?

“ YAML解析和Python吗?
”提供了解决方案,但是在从更复杂的YAML文件访问数据时遇到了问题。而且,我不知道是否有来自解析YAML文件,可能是类似“东西访问数据的一些标准的方式树迭代”或“
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中解析YAML文件? 问题答案: 不依赖标头的最简单,最纯净的方法是(文档),可以通过以下方式安装: 就是这样。一个普通的函数也存在,但是除非你明确需要提供的任意对象序列化/反序列化,以避免引入执行任意代码的可能性,否则通常应首选该函数。

  • 这是我第一次使用YAML文件,所以我首先想到的是找到任何可以帮助我解析文件的库。 我找到了两个库,YamlBean和snakeyaml。我不确定我要用哪一个。 下面是我试图解析的文件的一个示例: 该文件将动态更改,所以我不知道该文件将包含多少用户或组。 有人能帮我开始吗?最好的图书馆是什么?YamlBean还是Snakeyaml? 我想,我需要将这些信息保存在一个可以轻松重复的东西中。

  • 问题内容: 这是我第一次使用YAML文件,因此我首先想到的是找到任何可以帮助我解析文件的库。 我发现了两个库YamlBean和SnakeYAML。我不确定我要使用哪一个。 这是我要解析的文件的示例: 该文件将动态更改,因此我不知道该文件将包含多少个用户或组。 我想从中获取的信息是用户名和类似的组: 并且仅从组中选择组名,如下所示: 有人可以让我从这里开始吗?最佳的库是什么?YamlBean或Sna

  • 问题内容: 我有一个yaml文件,当前写为: 但是,此yaml文件经常更改,因此每次可以使用不同的值添加新条目: 我从使用gopkg.in/yaml.v2包开始就知道,如果所有值都相同,我可以解析yaml文件,例如: 在上面的示例中,它仅适用于密钥/狗密钥,而不适用于其他密钥。 当新值经常添加到yaml文件中时,如何在Go中执行此操作? 谢谢 问题答案: 如果您现在不精确的结构,则应该使您的结构看

  • 我想在我的yaml文件中定义一个映射以在yaml文件中使用。 注意:我们对 yaml 有一个预处理步骤,它基本上允许我们插入可替换的令牌。我想使用替换令牌的值作为我的密钥...这就是为什么我不知道在我写yaml时我想要什么价值,只是FYI 所以简而言之,我想做的是这样的事情 或 或 我期望的结果是 然而使用https://yaml-online-parser.appspot.com/ 我可以看到这

  • 问题内容: 我知道许多操作系统都在文件系统上执行某种锁定,以防止视图不一致。Java和/或Android是否可以保证文件访问的线程安全性?在我自己编写并发代码之前,我想尽可能多地了解这一点。 如果我错过了回答的类似问题,请随时关闭此线程。谢谢。 问题答案: Android建立在Linux之上,因此继承了Linux的文件系统语义。除非您明确锁定文件,否则多个应用程序和线程可以打开该文件以进行读/写访