Python之pickle序列化

简介:

    内存中有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?这取决于你想要怎么保存、怎么重用、发送给谁。很多游戏允许你在退出时保存进度,然后你再次启动的时候回到上次退出的地方。(实际上,很多非游戏程序也会这么干。)在这个情况下,一个捕获了当前进度的数据结构需要在你退出的时候保存到磁盘上,接着你重新启动的时候从磁盘上加载进来。

    Python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

什么东西能用pickle模块存储?
--所有python支持的原生类型:布尔、整数、浮点数、复数、字符串、bytes(字节串)对象,字节数组,以及None
--由任何原生类型组成的列表、元组、字典
--由任何原生类型组成的列表、元组、字典和集合组成的列表、元组、字典和集合(可以一直嵌套下去,直至python支持的最大递归层数)
--函数、类和类的实例

d=[1,2,3,4,5,6]
f=file('test.txt','w')
f.write(d) // 只能将字符串写入,无法将列表、字典等类型写入文件中,这时使用pickle
f.close()

import pickle
account_info={'123':['alex3721',125000,1233000],'355':['rachel',9000,9000]}

f=file('account.pkl','wb')
pickle.dump(account_info,f) //把内存里的东西dump到磁盘
f.close()

##反序列化

f=open('account.pkl','rb')
account_info=pickle.load(f)
print account_info

#####

pickle
account_info={:[,,],:[,,]}
f=(,)
pickle.dump(account_info,f)

account_info[][]=pickle.dump(account_info,f)
f.close()
f=(,)

,acc1#保存了2次的状态,或者N次
acc2
f.close()

本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1873253

相关文章
|
3月前
|
JSON 缓存 安全
Python 的其他应用: 解释什么是 Python 的 pickle 模块?
Python 的其他应用: 解释什么是 Python 的 pickle 模块?
|
5月前
|
存储 算法 Python
Python算法——树的序列化与反序列化
Python算法——树的序列化与反序列化
149 1
|
1月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
18 0
|
3月前
|
Go Python 算法
Python每日一练(20230412) 队列实现栈、二叉树序列化、交换链表节点
Python每日一练(20230412) 队列实现栈、二叉树序列化、交换链表节点
31 0
Python每日一练(20230412) 队列实现栈、二叉树序列化、交换链表节点
|
4月前
|
JSON API 网络架构
Python Web 开发: 解释 Django REST framework 的作用,以及如何定义序列化器(Serializer)?
Python Web 开发: 解释 Django REST framework 的作用,以及如何定义序列化器(Serializer)?
|
6月前
|
存储 XML JSON
【100天精通python】Day26:文件和IO操作_文件指针的定位与移动,序列化与反序列化
【100天精通python】Day26:文件和IO操作_文件指针的定位与移动,序列化与反序列化
38 0
|
6月前
|
存储 自然语言处理 Linux
Python标准库分享之存储对象 (pickle包,cPickle包)
Python标准库分享之存储对象 (pickle包,cPickle包)
|
8月前
|
存储 JSON JavaScript
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
61 0
|
8月前
|
存储 JSON 数据格式
Python--序列化与反序列化
Python--序列化与反序列化
74 0
|
8月前
python-- pickle 序列化
python-- pickle 序列化