本文目录导读:

是的,Python 解析 YAML 最常用的库就是 PyYAML,它是目前 Python 生态中使用最广泛、文档最完善的 YAML 解析库。
安装 PyYAML
pip install pyyaml
基本用法
读取 YAML 文件
import yaml
# 从文件读取
with open('config.yaml', 'r', encoding='utf-8') as f:
data = yaml.safe_load(f)
print(data) # 返回 Python 字典/列表
# 从字符串读取
yaml_str = """
name: 张三
age: 30
hobbies:
- 读书
- 跑步
"""
data = yaml.safe_load(yaml_str)
写入 YAML 文件
data = {
'name': '张三',
'age': 30,
'hobbies': ['读书', '跑步']
}
# 写入文件
with open('output.yaml', 'w', encoding='utf-8') as f:
yaml.dump(data, f, allow_unicode=True, default_flow_style=False)
# 转成字符串
yaml_str = yaml.dump(data, allow_unicode=True)
关键函数说明
| 函数 | 说明 | 建议 |
|---|---|---|
yaml.safe_load() |
安全加载,只解析标准 YAML 标签 | 推荐使用 |
yaml.load() |
可解析 Python 自定义对象 | 有安全风险,不推荐 |
yaml.safe_load_all() |
加载多文档 YAML(多个 分隔) | 处理多文档时用 |
yaml.dump() |
将 Python 对象转为 YAML 格式 | 常用 |
yaml.dump_all() |
导出多文档 YAML | 较少用 |
安全注意事项
强烈建议总是使用 yaml.safe_load() 而不是 yaml.load():
# ✅ 安全 data = yaml.safe_load(yaml_str) # ❌ 危险 - 可能执行任意代码 data = yaml.load(yaml_str)
其他 YAML 库选项
虽然 PyYAML 是主流选择,但也有其他选择:
- ruamel.yaml:支持 YAML 1.2,保留注释和格式,适合需要保持原格式的场景
- oyaml:PyYAML 的简单包装,支持有序字典
如果只是基本需求,PyYAML 完全够用。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播