详解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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python操作MongoDB基础知识
Nov 01 Python
python根据经纬度计算距离示例
Feb 16 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
python实现各种插值法(数值分析)
Jul 30 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
Python集合操作方法详解
Feb 09 Python
python环境下安装opencv库的方法
Mar 05 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 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文件中是否含有bom的函数
2012/05/31 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
PHP守护进程实例
2015/03/06 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
详解vue-cli3使用
2018/08/14 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[04:28]2014DOTA2国际邀请赛 采访小兔子LGD挺进钥匙体育馆
2014/07/14 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python安装后的目录在哪里
2020/06/21 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
C面试题
2015/10/08 面试题
竞选演讲稿范文
2013/12/28 职场文书
超级搞笑检讨书
2014/01/15 职场文书
小学音乐教学反思
2014/02/05 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
本科应届生自荐信
2014/06/29 职场文书
冰峪沟导游词
2015/02/09 职场文书
2015国庆节宣传语
2015/07/14 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
PyTorch device与cuda.device用法
2022/04/03 Python
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL