Pickle模块中的dump()和load()方法介绍
创始人
2024-05-31 01:32:03
0

目录

一、简介

1.1 为什么要进行对数据进行序列化操作?

二、pickle.dump(obj, file, protocol)

三、pickle.load(file)


一、简介

Pickle模块实现了基本的数据序列化与反序列化操作。通过序列化操作,我们可以将程序中运行的对象信息转化为字节流保存到文件中去,永久存储在磁盘上。通过反序列化操作,我们可以将文件中字节流数据重新解析为一个python对象。

注:pickle序列化后的字节流数据可读性差,人一般无法识别。

1.1 为什么要进行对数据进行序列化操作?

1.不需要在跑代码时重新去计算得到数据,事先进行序列化操作保存数据可以节省计算机资源;

2.pkl文件能够更好的被内存调用,不需要经过数据格式的转换,因此提高了效率;而假如保存为其他格式(如txt、csv文件),那么数据读写速度都不如序列化后的数据。

3.Pickle可以保存多个对象。实验中,同一数据集下需要保存的内容不止一种,通过pickle可以全部将其保存到一个.pkl文件。

二、pickle.dump(obj, file, protocol)

obj: 要进行序列化的对象,这里将对象obj保存到文件file中去;
file: file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象;
protocol: 序列化模式,默认是 0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)

import pickle# 创建一个字典对象
data = {'a':[1,2,3],'b':'Hello'}# 以二进制写入方式打开文件,得到文件对象
fw = open('./Mydata.pkl','wb')# 将字典数据存储为一个pkl文件
pickle.dump(data, fw)# 关闭文件
pickle.close()

序列化后的数据形式:

三、pickle.load(file)

file: 表示上一步序列化之后的文件,这里进行反序列化操作。

import pickle# 以二进制读入方式打开文件,得到文件对象
fw = open(r'C:\python数据分析\python基础\testdata.pkl','rb')# 将字节流数据反序列化为一个字典对象
data = pickle.load(pic2)print(data)

打印出来的数据:

 

相关内容

热门资讯

ETF主力榜 | 工业有色ET...        2025年7月17日,工业有色ETF(560860.SH)收涨0.54%,主力资金(单...
普联软件:辅助客户开展数据要素... 投资者提问:在数据要素市场发展的背景下,公司怎样挖掘数据资产价值?董秘回答(普联软件SZ300996...
被问爆的牵牛花紫苎麻小衫!穿上... 当晨光初绽,一抹柔和的紫色透过薄雾轻轻晕染开来。这抹被稀释过的紫,来自清晨爬满篱笆的牵牛花,自有一股...
天顺风能:海上风电桩基项目从接... 投资者提问:董秘你好,想请教关于公司海外拓展的问题:公司与海外客户接触一般是分为哪几个阶段?比如初步...
临沧:烟叶变“金叶” 采烤正当...   原标题:烟叶变“金叶” 采烤正当时连片的烟田  又是一年烟叶采烤时。眼下,临沧市各地烤烟陆续成熟...
ETF主力榜 | 中证A500...        2025年7月17日,中证A500ETF富国(563220.SH)收涨1.07%,主力...
ETF主力榜 | 信用债ETF...        2025年7月17日,信用债ETF博时(159396.SZ)收涨0.12%,主力资金(...
中铁九局塞尔维亚项目部再获“安... 来源:环球网 在7月15日塞尔维亚紫金矿业有限公司的安全先进颁奖大会上,中铁九局塞尔维亚项目部在12...
港股收盘 | 科技指数领跑主要... 财联社7月17日讯(编辑 胡家荣)港股三大指数表现不一。截至收盘,恒生指数跌0.08%,报24498...
“社保基数下限上调至5166元... (来源:银柿财经) 相关信息以官方发布为准,切勿信谣传谣。 ...