Python模块(一):Pickle

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)

输出:Python模块(一):Pickle


3.pickle.dumps(obj)

  • obj:必填参数,表示要封装的Python对象。
    以字节对象形式返回封装的对象,不需要写入文件中(即不需要open())。
    将数据通过特殊形式转换为只有python认识的字符
import pickle
data = ['aa', 'bb', 'cc']
p_byte = pickle.dumps(data)
print(p_byte)

输出:Python模块(一):Pickle


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)

输出:
Python模块(一):Pickle
参考资料:
https://www.cnblogs.com/lincappu/p/8296078.html

Python模块(一):PicklePython模块(一):Pickle 叫我李嘉图 发布了2 篇原创文章 · 获赞 0 · 访问量 37 私信 关注
上一篇:Python学习之路(十六):基础知识之序列化模块


下一篇:json.dumps()和json.loads()