当前位置: 首页 > 图灵资讯 > 行业资讯> 一文带你读懂Python中的pickle模块

一文带你读懂Python中的pickle模块

发布时间:2025-10-08 17:44:17

pickle模块:

属于python专有模块,用法,功能与json相似。

常用方法:

dump(obj,fp):将对象以字符串的形式写入文件中。

load(fp):将数据从文件中读取并返回(需要变量接收)。

dumps(obj):将对象转换为json字符串。

loads(str):将json字符串数据转换为原始数据类型。

dump(obj,fp) | load(fp) 示例如下;

importpickle
#将数据以json的形式写入文件
dict_1={"电影":"黄飞鸿","电视剧":"霍元甲"}
file_write=open("pickle.txt",mode="wb")
pickle.dump(dict_1,file_write)#以字节的形式将字典写入文件
file_write.close()
#以json的方式读取文件中的数据
file_read=open("pickle.txt",mode="rb")
dict_2=pickle.load(file_read)#将文件中的内容转换为原始数据类型并返回
file_read.close()
print(dict_2.items(),type(dict_2)#打印转换后的数据

打印内容如下

dict_items([('电影','黄飞鸿'),('电视剧','霍元甲')])<class'dict'>

相关推荐:Python视频教程

dumps(obj) | loads(obj) 示例如下;

importpickle
dict_1={"电影":"黄飞鸿"}
pickle_byte=pickle.dumps(dict_1)#将字典转换为pickle字节
print(pickle_byte)
#将pickle字节转换为原数据
dict_2=pickle.loads(pickle_byte)
print(dict_2.items(),type(dict_2)#打印转换后的数据

打印内容如下

b'\x80\x03}q\x00X\x06\x00\x00\xe7\x94\xe5\xe5\xe5\xx00\xe00\xe7xbd\xb1q\x01X\tx000\x000\x000\xe9xbbx84\xe9exe9\xb8xbfq
\x02s.'
dict_items([('电影','黄飞鸿')])<class'dict'>

与json不同的是,pickle可以多次dumpload,如下:

importpickle
dict_1={"电影":"黄飞鸿"}
dict_3={"电视剧":"霍元甲"}
dict_5={"动画片":"葫芦娃"}
file_write=open("pickle.txt",mode="wb")
pickle.dump(dict_1,file_write)#以字节的形式将dict_1写入文件
pickle.dump(dict_3,file_write)#以字节的形式将dict_3写入文件
pickle.dump(dict_5,file_write)#以字节的形式将dict_5写入文件
file_write.close()
file_read=open("pickle.txt",mode="rb")
dict_2=pickle.load(file_read)#将文件中的内容转换为原始数据类型并返回
dict_4=pickle.load(file_read)#将文件中的内容转换为原始数据类型并返回
dict_6=pickle.load(file_read)#将文件中的内容转换为原始数据类型并返回
file_read.close()
print(dict_2.items(),type(dict_2)#打印转换后的数据
print(dict_4.items(),type(dict_4)#打印转换后的数据
print(dict_6.items(),type(dict_4)#打印转换后的数据

打印内容如下

dict_items([('电影','黄飞鸿')])<class'dict'>
dict_items([('电视剧','霍元甲')])<class'dict'>
dict_items([('动画片','葫芦娃')])<class'dict'>

小结:

1、json属于通用模块,Java,还支持JS等其他语言。

Python私有pickle,只支持Python。

2、json将对象转换为json字符串类型。

pickle将对象转换为pickle字节类型。

3、json只能转换dict,list,tuple,str,int,float,简单的数据类型,如boool值等简单的数据类型

pickle可以转换除lamda以外的所有已知数据类型。

4、虽然json可以多次dump,但load会报错(这是伤)。

pickle可多次dump,多次load。

相关推荐:

一文带你读JSON模块

相关文章

一文带你读懂Python中的pickle模块

一文带你读懂Python中的pickle模块

2025-10-08
Python静态方法和类方法的区别和应用

Python静态方法和类方法的区别和应用

2025-10-08
详细介绍Python网络编程模块

详细介绍Python网络编程模块

2025-10-08
加速Python程序运行

加速Python程序运行

2025-10-08
手把手教你从变量和赋值语句起学python

手把手教你从变量和赋值语句起学python

2025-10-08
神秘而强大的Python生成器精讲

神秘而强大的Python生成器精讲

2025-10-08