Python基础入门篇【45】--python中json文件及yaml文件的应用

前言
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦

python中文件的应用

因为文件的读写只能进行字符串或比特类型的操作,其他类型只能转换成字符串或比特类型,想要使用时再转换回原来的类型,转换的过程非常复杂。下面介绍的序列化与反序列化可以很好的解决这个问题。

序列化与反序列化

序列化就是将对象的信息或数据结构信息通过转化成字符串,以达到存储或传输的效果

反序列化,顾名思义,就是将字符串转化成原来的类型。

可序列化的数据类型

数字类型、字符串类型、列表类型、元组类型、字典类型(最常用)

注意:类,实例化对象,函数,集合是无法序列化的

序列化模块–json模块与pickle模块

json是通用的序列化模块,几乎所有的编程语言都有json模块,且序列化与反序列化的规则是统一的。因此,我们在python中通过json序列化的数据,在其他语言中都可以反序列化并使用。

json模块的函数

函数参数描述例子返回值
dumpsobj对象序列化json.dumps([1, 2])字符串
loadsstr反序列化json.load(‘[1, 2]’)原始数据类型

json是一种序列化的标准,通过json中的dumps函数对对象进行序列化后,对象会以固定的标准返回:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tdq1RAaK-1660467430867)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220814121334432.png)]

同时,json也是一种文件格式,.json文件中的内容都是字典通过json序列化之后的内容。

例子:将字典通过json序列化后存入json文件,再从json文件中读取内容转化成字典

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NyCfGbr4-1660467430871)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220814123934936.png)]

pickle模块的函数

pickle模块只在python中使用,在其他语言可能无法处理

函数参数描述例子返回值
dumpsobj对象序列化pickle.dumps([1, 2])比特
loadsbyte反序列化pickle.load(‘[1, 2]’)原始数据类型

注意:和json不同的是,pickle模块dumps函数返回值是比特类型,load函数也只支持对比特类型进行反序列化

yaml

yaml文件

yaml文件类似json和txt文件,都是一种文本文件:xxx.yaml

yaml常作为配置文件使用,一般不会进行修改。yaml文件可以在服务启动前,将服务的配置信息放入到项目中进行初始化。以后在实际的web开发中会详细介绍。

yaml文件书写格式非常灵活,下面举一个常见的书写规范的例子:

name:
	xiaoming
age:
	10
like:
	-piano
	-pingpong
new:
	a:b
	b:1

调用yaml–第三方模块:pyyaml

首先安装pyyaml模块:pip install pyyaml

然后导入yaml模块:import yaml

读取yaml文件的方法:

f = open(yaml_file, 'r')
data = yaml.load(f.read(), Loader=yaml.FullLoader)   # 返回值是字典类型
f.close()

# yaml.load()函数再yaml5.1之后必须加入第二个参数Loader,否则会报错

例子:

yaml文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jDrTXZZc-1660467430875)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220814165016006.png)]

读取yaml文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jxMGTTkj-1660467430876)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220814165127871.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值