Python学习笔记(6):pickle序列化和反序列化

1.pickle模块实现了对Python对象结构进行序列化和反序列化的二进制协议。

2.pickle模块可以直接对内置数据类型和自定数据类型进行序列化和反序列化操作,无需编写额外的处理函数或类。

3.pickle模块提供的几个序列化/反序列化的函数:

# 将指定的Python对象通过pickle序列化作为bytes对象返回,而不是将其写入文件
dumps(obj, protocol=None, *, fix_imports=True)
# 将通过pickle序列化后得到的字节对象进行反序列化,转换为Python对象并返回
loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict")
# 将指定的Python对象通过pickle序列化后写入打开的文件对象中,等价于`Pickler(file, protocol).dump(obj)`
dump(obj, file, protocol=None, *, fix_imports=True)
# 从打开的文件对象中读取pickled对象表现形式并返回通过pickle反序列化后得到的Python对象
load(file, *, fix_imports=True, encoding="ASCII", errors="strict")

4.可以封装两个用于序列化和反序列化的方法:

def write_pickle(data, path):
    with open(path, 'wb') as f:
        pickle.dump(data, f)


def load_pickle(file):
    with open(file, 'rb') as f:
        return pickle.load(f)

你可能感兴趣的:(Python学习笔记(6):pickle序列化和反序列化)