详解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自动zip压缩目录的方法
Jun 28 Python
基于python socketserver框架全面解析
Sep 21 Python
Django实现组合搜索的方法示例
Jan 23 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
Python检查ping终端的方法
Jan 26 Python
Python3模拟登录操作实例分析
Mar 12 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
python线程定时器Timer实现原理解析
Nov 30 Python
PYcharm 激活方法(推荐)
Mar 23 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
python中取绝对值简单方法总结
Jul 24 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循环输出数据库内容的代码
2008/05/24 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
详解Python中的__new__()方法的使用
2015/04/09 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python实现简单ftp客户端的方法
2015/06/28 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python中的变量如何开辟内存
2018/06/26 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
详解python中的模块及包导入
2019/08/30 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
函授本科毕业生自我鉴定
2013/10/16 职场文书
会计专业导师推荐信
2014/03/08 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
旷课检讨书500字
2014/10/14 职场文书
教师见习报告范文
2014/11/03 职场文书
雾霾停课通知
2015/04/24 职场文书