详解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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
python 生成图形验证码的方法示例
Nov 11 Python
python制作mysql数据迁移脚本
Jan 01 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
pybind11在Windows下的使用教程
Jul 04 Python
Python web如何在IIS发布应用过程解析
May 27 Python
python怎么提高计算速度
Jun 11 Python
记录模型训练时loss值的变化情况
Jun 16 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
Python如何定义有可选参数的元类
Jul 31 Python
python语言time库和datetime库基本使用详解
Dec 25 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
php 常用的系统函数
2017/02/07 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
PHP实现微信对账单处理
2018/10/01 PHP
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python中list列表的高级函数
2016/05/17 Python
python直接访问私有属性的简单方法
2016/07/25 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
Python自带的IDE在哪里
2020/07/01 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
EJB的角色和三个对象
2015/12/31 面试题
市场营销管理毕业生自荐信
2014/03/03 职场文书
医学求职信
2014/05/28 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
2014企业年终工作总结
2014/12/23 职场文书
2016年国陪研修感言
2015/11/18 职场文书