yaml使用

yml使用

安装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'}}]
​
posted @ 2022-08-06 14:31  无敌大牛牛  阅读(83)  评论(0编辑  收藏  举报