19. 序列化

在 Python 中 pickle 模块实现对数据的序列化和反序列化。pickle 支持任何数据类型,包括内置数据类型、函数、类、对象等。

19.1 方法

dump

将数据对象序列化后写入文件

pickle.dump(obj, file, protocol=None, fix_imports=True)  

必填参数 obj 表示将要封装的对象。 必填参数 file 表示 obj 要写入的文件对象,file 必须以二进制可写模式打开,即wb。 可选参数 protocol 表示告知 pickle 使用的协议,支持的协议有 0,1,2,3,默认的协议是添加在 Python 3 中的协议3。

load

从文件中读取内容并反序列化

pickle.load(file, fix_imports=True, encoding='ASCII', errors='strict')  

必填参数 file 必须以二进制可读模式打开,即rb,其他都为可选参数。

dumps

以字节对象形式返回封装的对象,不需要写入文件中

pickle.dumps(obj, protocol=None, fix_imports=True)
import pickle

a_dict = {'da': 111, 2: [23,1,4], '23': {1:2,'d':'sad'}}

# pickle a variable to a file
file = open('pickle_example.pickle', 'wb')
pickle.dump(a_dict, file)
file.close()


# reload a file to a variable
with open('pickle_example.pickle', 'rb') as file:
    a_dict1 =pickle.load(file)

print(a_dict1)

发表回复

登录... 后才能评论