1.yaml文件规则
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
使用#表示注释
字符串可以不用引号标注
2.yaml文件数据结构
对象:键值对的集合(简称 "映射或字典")
键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔
数组:一组按序排列的值(简称 "序列或列表")
数组前加有 “-” 符号,符号与值之间需用空格分隔
纯量(scalars):单个的、不可再分的值(如:字符串、bool值、整数、浮点数、时间、日期、null等)
None值可用null可 ~ 表示
3.读取yaml文件
1 import yaml
2
3 def get_yaml():
4 file_yaml = 'test.yaml'
5 rf = open(file=file_yaml, mode='r', encoding='utf-8')
6 crf = rf.read()
7 rf.close() # 关闭文件
8 yaml_data = yaml.load(stream=crf, Loader=yaml.FullLoader)
9 return yaml_data
(1)yaml文件数据为键值对
usr: my
psw: 123455
s: " abc\n"
解析后:{'usr': 'my', 'psw': 123455, 's': ' abc\n'}
(2)键值对嵌套键值对
usr1:
name: a
psw: 123
usr2:
name: b
psw: 456
解析后:{'usr1': {'name': 'a', 'psw': 123}, 'usr2': {'name': 'b', 'psw': 456}}
(3)键值对中嵌套数组
usr3:
- a
- b
- c
usr4:
- b
解析后:{'usr3': ['a', 'b', 'c'], 'usr4': ['b']}
(4)yaml文件中内容为数组
- a
- b
- 5
解析后:['a', 'b', 5]
(5)数组中嵌套键值对
- usr1: aaa
- psw1: 111
usr2: bbb
psw2: 222
解析后:[{'usr1': 'aaa'}, {'psw1': 111, 'usr2': 'bbb', 'psw2': 222}]