Python解析yaml文件
- PyYAML库安装
PyYAML为python解析yaml的库
安装:pip3 install -U PyYAML
- yaml文件内容
Search_Data:
search_test_001:
value: 456
expect: [4,5,6]
search_test_002:
value: "你好"
expect: {"value":"你好"}
- 读取yaml文件
- 方法
yaml.load(stream, Loader=Loader)
参数:
stream:待读取文件对象
示例:
import yaml
with open("../Data/search_page.yaml",'r',encoding='UTF-8') as f:
data = yaml.load(f,Loader=yaml.FullLoader)
print(type(data)) # 打印data类型
print(data) # 打印data返回值
执行结果:
<class 'dict'>
{'Search_Data': {
'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'},
'search_test_001': {'expect': [4, 5, 6], 'value': 456}}}
- 写入yaml文件内容
{'Search_Data': {
'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'},
'search_test_001': {'expect': [4, 5, 6], 'value': 456}}}
- 写yaml文件
- 方法
yaml.dump(data,stream,**kwds)
常用参数:
data:写入数据类型为字典
stream:打开文件对象
encoding='utf-8' # 设置写入编码格式
allow_unicode=True # 是否允许unicode编码
示例:不设置编码格式
import yaml
data = {'Search_Data': {
'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'},
'search_test_001': {'expect': [4, 5, 6], 'value': 456}}
with open("./text.yaml","w") as f: # 在当前目录下生成text.yaml文件,若文件存在直接更新内容
yaml.dump(data,f)
执行结果:
1.当前目录生成text.yaml文件
2.文件内容:
Search_Data:
search_test_001:
expect: [4, 5, 6]
value: 456
search_test_002:
expect: {value: "\u4F60\u597D"} # 中文出现乱码
value: "\u4F60\u597D" # 中文出现乱码
示例:设置编码格式
import yaml
data = {'Search_Data': {
'search_test_002': {'expect': {'value': '你好'}, 'value': '你好'},
'search_test_001': {'expect': [4, 5, 6], 'value': 456}}
with open("./text.yaml","w") as f: # 在当前目录下生成text.yaml文件,若文件存在直接更新内容
yaml.dump(data,f,encoding='utf-8',allow_unicode=True)
执行结果:
1.当前目录生成text.yaml文件
2.文件内容:
Search_Data:
search_test_001:
expect: [4, 5, 6]
value: 456
search_test_002:
expect: {value: 你好} # 中文未出现乱码
value: 你好 # 中文未出现乱码