1.pickle作用
pickle模块提供了一个简单的持久化功能。可将Python的对象以文件的形式存放在磁盘上。pickle模块实现了基本的数据序列和反序列化Python对象结构的二进制协议。
Tips:
Python中有两个模块具有相似的功能:pickle和json。
- json:用于字符串和Python数据类型间进行转换。
- json提供四个功能:dumps/loads/jump/load
- pickle用于Python特有的类型和Python的数据类型间进行转换
- pickle提供四个功能: dumps/loads/dump/load
2.pickle使用
1.pickle.dump(obj, file, protocol=None)
- obj:必填参数,表示要封装的Python对象
- file: 必填参数, 表示obj要填入的文件对象。file必须得以二进制可写模式打开,即"wb"。
- protocol:可选参数。protocol表示告知pickle使用的协议,先支持的协议有0、1、2、3,默认的协议是添加协议3。
dump是将数据通过特殊的形式转换为只有Python标识的字符串,并写入文件
import pickle
folder = {'name':Ricardo, 'age':21, 'address':Zhejiang, 'hobby':code}
pickle_file = open('folder.pkl', 'wb')
pickle.dump(folder, pickle_file)
输出: 会在当前py文件下自动生成一个pkl文件。
2.pickle.load(file, *, fix_import=True, encoding=“ASCII”, errors=“strict”)
- file: 必填参数,必须以二进制可读模式打开,即’rb’。
- 其他的参数都为可选参数,不是很重要,在这里不赘述。
load是可从数据文件中读取数据,并转换为Python的数据结构
import pickle
pickle_file = open('folder.pkl', 'rb')
my_file = pickle.load(pickle_file)
print(my_file)
输出:
3.pickle.dumps(obj)
- obj:必填参数,表示要封装的Python对象。
以字节对象形式返回封装的对象,不需要写入文件中(即不需要open())。
将数据通过特殊形式转换为只有python认识的字符
import pickle
data = ['aa', 'bb', 'cc']
p_byte = pickle.dumps(data)
print(p_byte)
输出:
4.pickle.loads(obj)
- obj:必填参数,obj为字节对象。
loads是从字节对象中读取被封装的字节对象。
将pickle数据转换为python的数据。
import pickle
data = ['aa', 'bb', 'cc']
p_byte = pickle.dumps(data)
file = pickle.loads(p_byte)
print(file)
输出:
参考资料:
https://www.cnblogs.com/lincappu/p/8296078.html