详解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 相关文章推荐
使用grappelli为django admin后台添加模板
Nov 18 Python
Python CSV模块使用实例
Apr 09 Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
django 发送手机验证码的示例代码
Apr 25 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
python设置表格边框的具体方法
Jul 17 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
Python读写Excel表格的方法
Mar 02 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
PHP4引用文件语句的对比
2006/10/09 PHP
学习php开源项目的源码指南
2014/12/21 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
php日期操作技巧小结
2016/06/25 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
prototype class详解
2006/09/07 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
webpack打包react项目的实现方法
2018/06/21 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
django使用xadmin的全局配置详解
2019/11/15 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
不服从公司安排检讨书
2014/09/24 职场文书
工程部经理岗位职责
2015/02/02 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Linux中文件的基本属性介绍
2022/06/01 Servers