一、简介
Yaml是一种数据格式,支持注释、换行、多行字符串、裸字符串(最小的数据单元如:整形,字符串)
二、作用
1.用于全局的配置数据:环境变量,数据库信息,账号信息,日志格式,日志报告名称等(常见有两种:ini,yaml文件)
2.用于写测试用例(接口测试用例)–用于数据驱动
三、语法规则
1.区分大小写
2.使用缩进表示层级,不能使用Tab键缩进,只能用空格
3.缩进没有数量的,只要前面是对齐的就行
4.注释是#
四、数据组成
1.Map对象(键值对/字典)
形如:键:(冒号后一个空格) 值
#冒号后面都得有空格
Liu:
name: 刘干铭
age: 20
写在一行:
Liu: {name: 刘干铭,age: 20}
2.数组(list)
用 ‘-’ 横线开头,表示在同一组数组内。如:
#“-”后需要有空格
Liu:
- name: 刘干铭,
- age: 20
或者
Liu: [
{name: 刘干铭},
{age: 20}
]
对应的json形式为
五、配置文件的处理
config.yaml文件:
1.读取
class YamlUtil:
def __init__(self,yaml_file):
#通过init方法把Yaml文件传入到这个类
self.yaml_file=yaml_file
#读取Yaml,对Yaml反序列化,就是把Yaml格式转换成dict格式
def read_file(self):
#打开文件
with open(self.yaml_file,encoding='utf-8') as f:
#用于加载,并传文件流
#Loader是加载方式
yaml.load(f,Loader=yaml.FullLoader)
调用读取:
if __name__ == '__main__':
YamlUtil('test_Yaml.yaml').read_file()
#YamlUtil类下的rea_file方法
2.写入
def write_file(self):
#把mode修改为写模式w
with open(self.yaml_file,encoding='utf-8',mode='w') as wf:
data={'中国':{'省份':'广东省'}}
yaml.load(data,wf,allow_unicode=True)
#allow_unicode=True是为了转换成中文
if __name__ == '__main__':
YamlUtil('test_Yaml.yaml').write_file()