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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 前言 在“通过简单示例来理解什么是机器学习”这篇文章里提到了pickle库的使用,本文来做进一步的阐述。 pi...
    leenard阅读 5,993评论 0 2
  • JAVA序列化机制的深入研究 对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整...
    时待吾阅读 13,751评论 0 24
  • 文件IO常用操作 一般说IO操作,指的是文件IO,如果指的是网络IO,会直接说。 把文件存储到磁盘上的这个过程,叫...
    vampire6阅读 4,719评论 0 0
  • 在赣南老家,中秋过后,就等着吃橙子啦。因为土壤中富含稀有金属,气候适宜,家乡的橙子、桔子异常甜美多汁。我7岁的时候...
    山下有橙阅读 1,891评论 0 3
  • 2009 上 1、按内容访问的存储器2、总线3、数据编码4、流水线5、关键路径:可延迟时间要注意 2009 下 1...
    wjing阅读 2,256评论 0 1