Yaml数据存储文件
YAML 是一种所有编程语言可用的友好的数据序列化标准,语法和其他高阶语言类似,并且可以简单表达清单、散列表,标量等资料形态.
- 语法规则
1.大小写敏感
2.使用缩进表示层级关系
3.缩进时不允许使用Tab键,只允许使用空格。
4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- 支持的数据结构
1.对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
2.数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
3.纯量(scalars):单个的、不可再分的值
-
1.对象
- 值为字符
data.yaml animal: pets 转换为python代码 {'animal': 'pets'}
- 值为字典
data.yaml animal: {"ke1":"pets","key2":"app"} # python字典 转换为python代码 {animal: {"ke1":"pets","key2":"app"}} # 嵌套字典结构
-
2.数组
- 方式一
data.yaml animal: - data1 - data2 转换为python代码 {'animal': ['data1', 'data2']}
- 方式二
data.yaml
animal: ['data1', 'data2'] # python列表
转换为python代码
{'animal': ['data1', 'data2']} # 字典嵌套列表
- 纯量
包含:字符串,布尔值,整数,浮点数,Null,日期
字符串
data.yaml
value: "hello"
转换为python代码
{"value":"hello"}
布尔值
data.yaml
value1: true
value2: false
转换为python代码
{'value1': True, 'value2': False}
整数,浮点数
data.yaml
value1: 12
value2: 12.102
转换为python代码
{'value1': 12, 'value2': 12.102}
空(Null)
data.yaml
value1: ~ # ~ 表示为空
转换为python代码
{'value1': None}
日期
data.yaml
value1: 2017-10-11 15:12:12
转换为python代码
{'languages': {'value1': datetime.datetime(2017, 10, 11, 15, 12, 12)}}
- 锚点&和引用*
锚点:标注一个内容,锚点名称自定义
引用:使用被标注的内容<<: *锚点名
data.yaml
data: &imp
value: 456
name:
value1: 123
<<: *imp # "<<:" 合并到当前位置,"*imp" 引用锚点imp
转换为python代码
{'data': {'value': 456}, 'name': {'value': 456, 'value1': 123}}