python解析yaml保留原格式_Python解析yaml文件

本文介绍了如何使用PyYAML库在Python中解析和写入yaml文件,包括`yaml.load`和`yaml.dump`方法的使用,以及处理中文编码问题。
摘要由CSDN通过智能技术生成

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返回值

执行结果:

{'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: 你好 # 中文未出现乱码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值