一、 yaml简介
yaml用来写配置文件的语言,和json文件功能类似,但比json简介,可以作为自动化框架的配置文件或用例文件
二、 yaml环境安装
pip install PyYaml
三、 yaml语法规则
1、 区分大小写
2、 使用锁进表示层级关系,不用括号,只能空格锁进,不能使用Tab,空格数量没要求,一般用一个空格,相同层级的元素左对齐
3、 #表示注释,从它开始的内容是注释
4、 值类型基本都支持,有字符串、整型、浮点、布尔、null、时间、日期
四、 读取yaml的方法
import yaml #导入时直接写的yaml,和安装的名字不一样
def get_yaml_data(file_path):
with open(file_path,encoding='utf-8') as f:
return yaml.safe_load(f.read())
#或者yaml.load(f,Loader=yaml.FullLoader)这种写法也行,Loader=yaml.FullLoader是一种固定写法,用来防止报错
五、 yaml常见数据格式示例
# 1.列表
- 1
- 2
- 3
# 顶个的-表示此处有列表,-与后面元素有个空格,不能紧挨着
# 2.字典
name: xiaoming # 注意,键值直接需要有个空格
age: 20
height: # 值可以写在同一行,也可以写在下面一行
160
# 3.字典套字典
name: xiaoming
age: 20
height:
160
data:
stu: qinghua
score: 100
# 4.列表套字典-1
- 1
- 2
- 3
-
name: xiaoming
# 4.列表套字典-2
-
name: liming
age: 18
-
animal: dog
六、 yaml数据类型
yaml基本上不需要写数据类型,比如不需要加引号,基本的可以自己识别,比如写值abc,读取后会自动识别加上引号,写123,识别出来是整数,写a123,识别出来是字符串,但有时候需要自己写上双引号来表示字符串,比如学号,需要加双引号,否则会识别为很大的整数
- 1
- 2
- 12345678
- "12345678"
七、 yaml处理转义(用不用双引号的区别)
如果不加双引号,那么yaml不转义,是以raw存储的,只有自己加了双引号,才会转义
data: 123\t456
data1: "123\t456"
总结:如果是将路径配置到yaml文件中,那么不能加双引号,否则如果有\t会转义,这里需要raw字符串
八、 变量的使用
如果有个值需要多个地方用到,那么可以设置成变量,然后引用变量,这样比较方便,因为如果要改这个值,只需要改一处,否则每个写了这个值的地方都要改
1、 变量用法
&变量名 变量值----定义变量
*变量名----使用变量
# 变量
name: xiaoming
school: &sc qinghua
name2: xiaozhang
school2: *sc
2、 高阶用法-插入变量
如果要使用的变量是一组数据,比如字典,用法如下
# 变量高阶
data: &data
school: qinghua
score: 100
name1: xiaoming
stuinfo1:
<<: *data # <<:代表合并到当前数据 *data是引用数据
age: 20
name2: xiaozhang
stuinfo2:
<<: *data
age: 20
九、 yaml分段
可以用---在一个yaml文件里对数据进行分段,相当于多个yaml文件,不同段的数据,键可以重名
---
school: beida
score: 80
---
school: qinghua
score: 80
十、 往yaml文件写数据
用例格式:
版权归原作者 nika_liw 所有, 如有侵权,请联系我们删除。