我该如何解析Python中的YAML文件
我如何解析Python中的YAML文件?
不依赖C头文件的最简单纯粹的方法是PyYaml:
#!/usr/bin/env python
import yaml
with open("example.yaml", 'r') as stream:
try:
print(yaml.load(stream))
except yaml.YAMLError as exc:
print(exc)
就是这样。 更多信息在这里:
http://pyyaml.org/wiki/PyYAMLDocumentation
如果您的YAML符合YAML 1.2规范(2009年发布),那么您应该使用ruamel.yaml(声明:我是该包的作者)。 它基本上是PyYAML的超集,它支持大多数YAML 1.1(从2005年开始)。
如果你想在往返时保留你的评论,你当然应该使用ruamel.yaml。
升级@ Jon的例子很简单:
import ruamel.yaml as yaml
with open("example.yaml") as stream:
try:
print(yaml.load(stream))
except yaml.YAMLError as exc:
print(exc)
用Python 2 + 3(和unicode)读取和写入YAML文件
# -*- coding: utf-8 -*-
import yaml
import io
# Define data
data = {'a list': [1, 42, 3.141, 1337, 'help', u'€'],
'a string': 'bla',
'another dict': {'foo': 'bar',
'key': 'value',
'the answer': 42}}
# Write YAML file
with io.open('data.yaml', 'w', encoding='utf8') as outfile:
yaml.dump(data, outfile, default_flow_style=False, allow_unicode=True)
# Read YAML file
with open("data.yaml", 'r') as stream:
data_loaded = yaml.load(stream)
print(data == data_loaded)
创建了YAML文件
a list:
- 1
- 42
- 3.141
- 1337
- help
- €
a string: bla
another dict:
foo: bar
key: value
the answer: 42
通用文件结尾
.yml
和.yaml
备择方案
对于您的应用程序,以下内容可能很重要:
另请参阅:比较数据序列化格式
如果您正在寻找制作配置文件的方式,您可能需要阅读我的简短文章Python配置文件
链接地址: http://www.djcxy.com/p/20133.html