详解Python 序列化Serialize 和 反序列化Deserialize


Posted in Python onAugust 20, 2017

详解Python 序列化Serialize 和 反序列化Deserialize

序列化 (serialization)

序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,

它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

序列化和反序列化的目的

1、以某种存储形式使自定义对象持久化;

2、将对象从一个地方传递到另一个地方。

3、使程序更具维护性

序列化

  由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。

反序列化

  反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。

  概括性来说序列化是指将对象实例的状态存储到存储媒体(磁盘或者其他介质)的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。

Python中可以使用 Pickle 和 json, 以及自定义序列化反序列化函数进行处理需要序列化的数据。

代码如下:

import pickle
import json
d = [1,2,3,4]
print(pickle.dumps(d))
print(type(pickle.dumps(d)))

print(json.dumps(d))
print(type(json.dumps(d)))

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持,如有疑问请留言或者到本站社区交流讨论,大家共同进步!

Python 相关文章推荐
Python学习资料
Feb 08 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
Python快速从注释生成文档的方法
Dec 26 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python3标准库总结
Feb 19 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Flask框架模板继承实现方法分析
Jul 31 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 Python
python连接mysql有哪些方法
Jun 24 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
Python中input与raw_input 之间的比较
Aug 20 #Python
Python 基础教程之str和repr的详解
Aug 20 #Python
Python实现爬取需要登录的网站完整示例
Aug 19 #Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 #Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 #Python
Python正则捕获操作示例
Aug 19 #Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 #Python
You might like
php 结果集的分页实现代码
2009/03/10 PHP
destoon之一键登录设置
2014/06/21 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
2017/12/27 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
sqlalchemy对象转dict的示例
2014/04/22 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
求职意向书
2014/07/29 职场文书
初三语文教学计划
2015/01/22 职场文书
工作推荐信模板
2015/03/25 职场文书
Pillow图像处理库安装及使用
2022/04/12 Python