yaml简介
yaml 是专门用来写配置文件的语言
yaml文件其实也是一种配置文件类型,后缀名是.yaml或.yml都可以
个人认为比yaml比json格式更方便
yaml语法规则
- 大小写敏感
- 使用缩进表示层级关系(不能用Tab,只能用空格)
- 相同层级的元素左对齐
-
号表示单行注释
- 字符串可以不用引号标注
安装yaml库
cmd执行pip install pyyaml
装的时候要用pyyaml,实际使用时直接import yaml即可
实例
- 列表
短横线加一个空格(- )
#test_列表.yaml
- 10
- 20
- 30
#test.py
import yaml
with open('test_列表.yaml',encoding='utf-8') as file1:
data = yaml.load(file1,Loader=yaml.FullLoader)#读取yaml文件
print(data)
>>>
[10, 20, 30]
- 字典
用冒号加空格连接键和值(: )
#test_字典.yaml
name: 吴彦祖
age: 20
#test.py
import yaml
with open('test_字典.yaml',encoding='utf-8') as file1:
data = yaml.load(file1,Loader=yaml.FullLoader)#读取yaml文件
print(data)
>>>
{'name': '吴彦祖', 'age': 20}
- 列表中的字典
#test_列表中的字典.yaml
-
name: 吴彦祖
age: 21
-
A: apple
#test.py
import yaml
with open('test_列表中的字典.yaml',encoding='utf-8') as file1:
data = yaml.load(file1,Loader=yaml.FullLoader)#读取yaml文件
print(data)
>>>
[{'name': '吴彦祖', 'age': 21}, {'A': 'apple'}]
- 字典中的字典
#test_字典中的字典.yaml
name:
name1: 吴彦祖
#test.py
import yaml
with open('test_字典中的字典.yaml',encoding='utf-8') as file1:
data = yaml.load(file1,Loader=yaml.FullLoader)#读取yaml文件
print(data)
>>>
{'name': {'name1': '吴彦祖'}}
- 字典中的列表
#test_字典中的列表.yaml
name:
- 吴彦祖
- 周星驰
- uzi
age: 20
#test.py
import yaml
with open('test_字典中的列表.yaml',encoding='utf-8') as file1:
data = yaml.load(file1,Loader=yaml.FullLoader)#读取yaml文件
print(data)
>>>
{'name': ['吴彦祖', '周星驰', 'uzi'], 'age': 20}
- 多组数据
当一个yaml文件内有多组数据时,用三个-分隔,
读取时使用yaml.load_all
例如同时有列表和字典:
#test_多组数据.yaml
- 10
- 20
- 30
---
name: 吴彦祖
age: 20
#test.py
import yaml
with open('test_多组数据.yaml',encoding='utf-8') as file1:
data = yaml.load_all(file1,Loader=yaml.FullLoader)#读取yaml文件
for i in data:
print(i)
>>>
[10, 20, 30]
{'name': '吴彦祖', 'age': 20}
- 元组写法(不常用,做了解)
key1: !!python/tuple [10, 20]
>>>
{'key1': (10, 20)}