yaml配置文件
Yaml学习
yaml+python库安装
pip install pyyaml
import yaml
print(yaml.__version__) # 打印安装的 PyYAML 版本
yaml介绍
YAML(YAML Ain't Markup Language)是一种注重可读性的数据序列化格式,非常适合用来表达或编辑数据结构、各种配置文件等。
基本语法规则
- 大小写敏感:YAML 对大小写敏感
- 使用缩进表示层级关系:这是 YAML 最显著的特点之一。缩进只允许使用空格,不能使用 Tab 键
- 缩进的空格数不重要,只要相同层级的元素左侧对齐即可(一般可以统一成2个)
- 注释:使用 # 表示注释,可以出现在一行中的任何位置,# 后面的内容都会被解析器忽略
- 文档标识符:使用 --- 表示一个文档的开始,... 表示一个文档的结束。这在同一个文件中包含多个文档时特别有用
核心数据结构
YAML 主要支持三种数据结构:
- 标量 (Scalars):单个的、不可再分的值,例如字符串、数字、布尔值等
- 序列 (Sequence):一组按次序排列的值,又称为数组或列表
- 对象 (Mapping):键值对的集合,又称为映射、哈希或字典
标量
字符串:
建议不使用引号,以下情况除外。
-
包含特殊字符:# % @ &* ' ` | > < {} [] : , = !
-
字符串以空格开头或结尾(自动过滤掉空格)
-
yaml内置标量类型同名: true、fail、 null、 123(数字)
-
unicode控制字符: "\0" ...
-
多行字符串:
- |(字面块):当你需要保留字符串内所有换行和缩进的原始格式时使用。
- >(折叠块):当你希望将多行字符串折叠成一行(换行符被替换为空格),通常用于长段落文本时使用。
数字:包括整数和浮点数,直接书写即可
布尔值:使用 true 或 false 表示(大小写敏感,推荐全部小写)
日期和时间:日期采用 yyyy-MM-dd 格式,时间采用 ISO 8601 格式(例如 2001-12-15T02:59:43.1Z)
序列
-
多行表示法: '-'+' '
fruits: - Apple - Orange - Strawberry -
单行表示法:
fruits: [Apple, Orange, Strawberry]
对象
对象(或称为字典)是键值对的集合,使用冒号加空格 : 表示
-
多行表示法:
person: name: John Doe age: 30 married: true -
单行表示法
person: {name: John Doe, age: 30, married: true}
pyyaml库使用
核心功能:
- 将YAML 数据解析为 Python 对象
- 将Python对象序列化为 YAML 格式
import yaml
#print(yaml.__version__) # 打印安装的 PyYAML 版本
#
#with open('test.yaml', 'r', encoding='utf-8') as f:
# data = yaml.safe_load(f)
#print(data)
data = {
'name': '李四',
'age': 30,
'is_student': False
}
#yaml_str = yaml.dump(data, allow_unicode=True) # allow_unicode 允许正确显示中文
#print(yaml_str)
with open('output.yaml', 'w', encoding='utf-8') as file:
yaml.dump(data, file, default_flow_style=False, allow_unicode=True, sort_keys=False)

浙公网安备 33010602011771号