Python的序列化与反序列化(pickle)

序列化定义:将内存中的数据写入磁盘或者传输到网络中。

反序列化:将本地数据或者网络数据写入内存中。


Python 中有一个非常简单的模块可以实现那么就是pickle

让我们来看看具体代码:

序列化:

>>>import pickle

>>>d=dict(name='Bob',age=20,score=88)

>>>pickle.dumps(d)

b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.'


这里的pickle.dumps(d)就是取出d中的内存数据。实现序列化。

pickle.dumps()方法把任意对象序列化成一个bytes,然后,就可以把这个bytes写入文件。



>>>f = open('dump.txt','wb')

>>>pickle.dump(d, f)

>>>f.close()

pickle.dump()直接把对象序列化后写入一个文件对象。


反序列化:

>>>f = open('dump.txt','rb')

>>>d = pickle.load(f)

>>>f.close()

>>>d

{'age':20,'score':88,'name':'Bob'}

总结可以保存一下配置文件或者运行环境。

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

推荐阅读更多精彩内容

  • 我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为s...
    牛崽儿酷阅读 116评论 0 0
  • 1 前言 在“通过简单示例来理解什么是机器学习”这篇文章里提到了pickle库的使用,本文来做进一步的阐述。 pi...
    leenard阅读 2,003评论 0 2
  • http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958...
    喵在野阅读 323评论 0 0
  • IO编程概念 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由C...
    时间之友阅读 732评论 0 0
  • 基础1.r''表示''内部的字符串默认不转义2.'''...'''表示多行内容3. 布尔值:True、False(...
    neo已经被使用阅读 1,752评论 0 5