介绍

YAML 全称 YAML Ain’t Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件[ref]YAML教程(快速入门版) (biancheng.net)[/ref]。

PyYAML是Python中用于处理YAML的第三方库。

安装

1
pip install PyYAML

PyYAML 6.0要求 Python >=3.6[ref]PyYAML · PyPI[/ref]。

YAML文件

后缀

xxx.yml 或 xxx.yaml

语法

树形结构,相同的前缀只需要写一次

  • 使用 空格缩进 来表示层级关系,空格数不重要,相同层级左对齐即可。不能用tab
  • 使用key: value:面要加一个空格重要
  • 大小写敏感
  • #表示注释

其他可参考:

Python中使用

使用库

导入库名为yaml

1
import yaml

打开yaml文件

假设有test.yaml文件:

1
2
3
4
5
6
7
8
9
一级标题:
二级标题1:
- b:1
- c:2
- a:3
二级标题2:
- f:7
- t:8
- z:9

打开:

1
2
3
with open('test.yaml', 'r', encoding='utf-8') as f:
data = yaml.load(stream=f, Loader=yaml.FullLoader)
print(data)

运行结果:

1
{'一级标题': {'二级标题1': ['b:1', 'c:2', 'a:3'], '二级标题2': ['f:7', 't:8', 'z:9']}}

写入yaml文件

修改内容并保存

1
2
3
data['二级标题2'] = '修改内容'
with open('./test2.yaml', 'w', encoding='utf-8') as f:
yaml.dump(data=data, stream=f, allow_unicode=True, sort_keys=False, indent=4)

生成了test2.yaml文件

1
2
3
4
5
6
7
8
9
10
一级标题:
二级标题1:
- b:1
- c:2
- a:3
二级标题2:
- f:7
- t:8
- z:9
二级标题2: 修改内容