如何在Python中解析YAML文件?
发布于 2016-08-13 00:15:46
如果你有符合YAML 1.2 specification (2009年发布)的YAML,那么你应该使用ruamel.yaml (免责声明:我是这个包的作者)。它本质上是PyYAML的超集,后者支持YAML1.1(从2005年开始)的大部分版本。
如果你想在往返时保留你的评论,你当然应该使用ruamel.yaml。
升级@Jon的例子很简单:
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
:
from ruamel.yaml import YAML
from pathlib import Path
path = Path('example.yaml')
yaml = YAML(typ='safe')
data = yaml.load(path)
发布于 2017-10-31 02:27:34
首先使用pip3安装pyyaml。
然后导入yaml模块并将文件加载到名为‘my_dict’的字典中:
import yaml
with open('filename.yaml') as f:
my_dict = yaml.safe_load(f)
这就是你所需要的。现在,整个yaml文件都在'my_dict‘字典中。
发布于 2020-10-29 02:21:30
要访问YAML文件中列表的任何元素,请执行以下操作:
global:
registry:
url: dtr-:5000/
repoPath:
dbConnectionString: jdbc:oracle:thin:@x.x.x.x:1521:abcd
您可以使用以下python脚本:
import yaml
with open("/some/path/to/yaml.file", 'r') as f:
valuesYaml = yaml.load(f, Loader=yaml.FullLoader)
print(valuesYaml['global']['dbConnectionString'])
https://stackoverflow.com/questions/1773805
复制相似问题