详解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爬虫框架Scrapy安装使用步骤
Apr 01 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python3写入文件常用方法实例分析
May 22 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
Python单例模式的两种实现方法
Aug 14 Python
获取Django项目的全部url方法详解
Oct 26 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
python for和else语句趣谈
Jul 02 Python
Django显示可视化图表的实践
May 10 Python
python ansible自动化运维工具执行流程
Jun 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 高手之路(三)
2006/10/09 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
js判断是否是手机页面
2017/03/17 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3 模块、包调用&路径详解
2017/10/25 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python 回溯法模板详解
2020/02/26 Python
python调用百度API实现人脸识别
2020/11/17 Python
python 装饰器的基本使用
2021/01/13 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
平民服装店创业计划书
2014/01/17 职场文书
重阳节登山活动方案
2014/02/03 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
开工仪式策划方案
2014/05/23 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python