类似vmware虚拟机里的虚拟主机挂起操作,把当前内存拷贝成文件保存。

上面的这种操作就叫内存序列化:如下图:

有序列化就有反序列化,要把文件里的东西再恢复成字典:eval把字符串变成字典。

但是上面的这种方法很low,用的方法很复杂,我们要用jason的方法:下面是序列化的方法:json.dumps()

反序列化如下图:json.loads()

json的主要作用是不用语言的数据交互,所以json不支持复杂的数据类型。

但是我们就想处理复杂的数据类型,怎么办呢?我们可以用pickle

import pickle,但是注意pickle处理的全是bytes数据类型,不能用字符串。其余的写法跟json一模一样。

序列:pickle.dumps()

反序列:pickle.loads()

导入pickle模块

文件test.text变成二进制文件:

反序列:

虽然反序列是成功了,但是在新的这个脚本里,并没有sayhi这个函数,所以你打印,肯定报错。我们必须做如下处理:

把序列化里的sayhi()这个函数copy过来:

这个时候就不报错了。

我们也可以给字典[func]进行取值。

序列化程序如下:

反序列化程序如下:

但是要注意,pickle只限于PYTHON里使用,跟java不能通用,但是json是可以在python和java里通用的。

其实pickle也有其他的方法,dump和load,见如下:

下面的写法一模一样

pickle.dump(info,f) ============f.write( pickle.dumps( info) )
data = pickle.load(f) =============data = pickle.loads(f.read())

序列化:

反序列化程序如下:

如果这个时候,我们可能存在dumps两次的情况:

我们来看下反序列化:反复报错!

在py2里是可以dump好几次,然后load好几次,(而且先dump进去的,先load出来,不过这样很容易出错),但是在py3里是不允许了。你记住dump一次,load一次。

如果你真想dump好几个,那么就dump成好几个文件!!!

最新文章

  1. H3 BPM:为石化企业提供一个不一样的全停大修平台
  2. 分享基于Entity Framework的Repository模式设计(附源码)
  3. mssql 跨库获取mysql
  4. LoadRunner参数更新方法和数据分配
  5. 把字符转换为 HTML 实体
  6. Delphi与C语言类型转换对照
  7. javascript操作cookies
  8. 关于《Swift开发指南》背后的那些事
  9. 在Ubuntu Linux下怎样安装QQ
  10. 说说CSS学习中的瓶颈
  11. 复习css3的部分属性
  12. SQL学习之汇总数据之聚集函数
  13. 初探ExtJS(2)
  14. resin4.0服务器远程调试说明
  15. C#基础知识总结(三)
  16. uni-app (1) 安装与运行。
  17. C++ 实现 split 操作
  18. Java连接数据库 #04# Apache Commons DbUtils
  19. android中Fragment的使用
  20. kernel build command

热门文章

  1. neutron dhcp ha 实验
  2. vmware增加共享文件夹
  3. 新版appium绘制九宫格的一个注意点
  4. 在Windows下MyEclipse运行JAVA程序连接HBASE读取数据出错
  5. 【spark】常用转换操作:keys 、values和mapValues
  6. 记录下httpclient 发送请求 服务端用@RequestBody 自动接收参数 报415
  7. 如何拿到半数面试公司Offer——我的Python求职之路(转载)
  8. python基础之多线程与多进程(二)
  9. UI-定时器与动画使用总结
  10. CSS: Flexbox