YAML 简介
YAML 是一种人类可读的数据序列化语言,最初代表'Yet Another Markup Language',后更正为'YAML Ain't Markup Language'。它主要用于存储配置信息,语法简洁,去除了 JSON 或 XML 中大量的引号和括号。
核心特点
- 缩进敏感:类似 Python,通过空格缩进表示层级,禁用 Tab 键。
- 区分大小写:键名和值严格区分大小写。
- 非编程语言:仅用于数据存储,不具备逻辑执行能力。
数据类型与 JSON 对比
| 类型 | YAML 示例 | JSON 示例 |
|---|---|---|
| 标量 | key: value | {"key": "value"} |
| 列表 | list: |
- item1
- item2 |
{"list": ["item1", "item2"]}| | 映射 | map: sub_key: value |{"map": {"sub_key": "value"}}|
Python 环境配置
在 Python 中使用 YAML 需安装 PyYAML 库。
pip install PyYAML
安装后可通过 pip list 验证。
核心操作实践
1. 写入与追加
向 YAML 文件写入数据时,若文件不存在会自动创建。注意追加模式下的文档分隔问题,通常建议每次写入完整结构或使用多文档流。
import yaml
import os
def write_yaml(filename, data):
file_path = os.getcwd() + "/data/" + filename
with open(file_path, encoding="utf-8", mode="a+") as f:
yaml.safe_dump(data, stream=f, allow_unicode=True)
2. 读取数据
读取时需确保文件存在且格式正确,推荐使用 safe_load 防止反序列化漏洞。
import yaml
import os
def read_yaml(filename, key):
file_path = os.getcwd() + "/data/" + filename
(file_path, encoding=, mode=) f:
data = yaml.safe_load(f)
data[key]


