详解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绘制正余弦函数图像的方法
Aug 28 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
python进程和线程用法知识点总结
May 28 Python
Django用户认证系统 Web请求中的认证解析
Aug 02 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
详解Python中第三方库Faker
Sep 25 Python
python飞机大战游戏实例讲解
Dec 04 Python
Python 使用dict实现switch的操作
Apr 07 Python
pandas中DataFrame检测重复值的实现
May 26 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编程网上资源导航
2006/10/09 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
浅析javascript的return语句
2015/12/15 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
python33 urllib2使用方法细节讲解
2013/12/03 Python
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
应届生服装设计自我评价
2013/09/20 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
辞职信格式范文
2015/05/13 职场文书
公司业务员管理制度
2015/08/05 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL