首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中解析YAML文件

如何在Python中解析YAML文件
EN

Stack Overflow用户
提问于 2009-11-21 07:16:16
回答 5查看 845.9K关注 0票数 828

如何在Python中解析YAML文件?

EN

回答 5

Stack Overflow用户

发布于 2016-08-13 00:15:46

如果你有符合YAML 1.2 specification (2009年发布)的YAML,那么你应该使用ruamel.yaml (免责声明:我是这个包的作者)。它本质上是PyYAML的超集,后者支持YAML1.1(从2005年开始)的大部分版本。

如果你想在往返时保留你的评论,你当然应该使用ruamel.yaml。

升级@Jon的例子很简单:

代码语言:javascript
复制
import ruamel.yaml as yaml

with open("example.yaml") as stream:
    try:
        print(yaml.safe_load(stream))
    except yaml.YAMLError as exc:
        print(exc)

使用safe_load(),除非你真的完全控制了输入,需要它(很少是这种情况),并且知道你在做什么。

如果您正在使用pathlib来操作文件,那么最好使用ruamel.yaml提供的新Path

代码语言:javascript
复制
from ruamel.yaml import YAML
from pathlib import Path

path = Path('example.yaml')
yaml = YAML(typ='safe')
data = yaml.load(path)
票数 78
EN

Stack Overflow用户

发布于 2017-10-31 02:27:34

首先使用pip3安装pyyaml。

然后导入yaml模块并将文件加载到名为‘my_dict’的字典中:

代码语言:javascript
复制
import yaml
with open('filename.yaml') as f:
    my_dict = yaml.safe_load(f)

这就是你所需要的。现在,整个yaml文件都在'my_dict‘字典中。

票数 46
EN

Stack Overflow用户

发布于 2020-10-29 02:21:30

要访问YAML文件中列表的任何元素,请执行以下操作:

代码语言:javascript
复制
global:
  registry:
    url: dtr-:5000/
    repoPath:
  dbConnectionString: jdbc:oracle:thin:@x.x.x.x:1521:abcd

您可以使用以下python脚本:

代码语言:javascript
复制
import yaml

with open("/some/path/to/yaml.file", 'r') as f:
    valuesYaml = yaml.load(f, Loader=yaml.FullLoader)

print(valuesYaml['global']['dbConnectionString'])
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1773805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档