yaml使用
安装yaml
pip install PyYaml
yaml基本规则
# 1.大小写敏感
# 2.使用缩进表示层级关系,
# 2.1 不能使用tab进行缩进,只能使用空格
# 2.2 缩进的空格数目不重要,只有相同层级的元素左对齐即可
# 3.冒号后面要空一格
yaml转字典
# yml转字典
name: 小肥牛
age: 28
job: It
# >>> {'name': '小肥牛', 'age': 28, 'job': 'It'}
yaml转列表
# yml转列表
- 蓝色
- 紫色
# >>> ['蓝色', '紫色']
复合结构
- name: 小肥牛
age: 28
job: it
# >>> [{'name': '小肥牛', 'age': 28, 'job': 'it'}]
- name: 小肥牛
age: 28
job: it
date: 2022-08-06
- name: 大大
age: 28
job: it
# >>> [{'name': '小肥牛', 'age': 28, 'job': 'it'}, {'name': '大大', 'age': 28, 'job': 'it'}]
name:
- 200
- null # None要写成null,也可用~来表示
# >>> {'name': [200, 200]}
name: [1,2,3]
# >>> {'name': [1, 2, 3]}
引用
& 定义变量
*
引用变量
name: &name 灰蓝
testet: *name
# 相当于
name: 灰蓝
tester: 灰蓝
# >>> {'name': '灰蓝', 'testet': '灰蓝'}
强制转换
str: !!str 3.14
int: !!int "123"
# >>> {'str': '3.14', 'int': 123}
# 将"123"转换成123,将int 3.14转换成字符串
分段
---
str: !!str 3.14
int: !!int "123"
---
name: 汤姆
age: 19
# 分段以后,使用load_all() 返回一个迭代器,使用for来输出
result = yaml.safe_load_all(f.read())
result = yaml.safe_load_all(f.read())
for i in result:
print(i)
yaml格式用例
-
url: /api/user/login
method: post
detail: 正常登录
data:
username: xxxx
passwd: xxxx
check:
userId: aa
sign: bbb
-
url: /api/user/login
method: post
detail: 不传密码
data:
username: xxxx
passwd: xxxx
check:
userId: aa
sign: bbb
# >>> [{'url': '/api/user/login', 'method': 'post', 'detail': '正常登录', 'data': {'username': 'xxxx', 'passwd': 'xxxx'}, 'check': {'userId': 'aa', 'sign': 'bbb'}}, {'url': '/api/user/login', 'method': 'post', 'detail': '不传密码', 'data': {'username': 'xxxx', 'passwd': 'xxxx'}, 'check': {'userId': 'aa', 'sign': 'bbb'}}]