详解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根据文件大小打log日志
Oct 09 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
python制作websocket服务器实例分享
Nov 20 Python
pytorch构建网络模型的4种方法
Apr 13 Python
Django中间件实现拦截器的方法
Jun 01 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
Python获取对象属性的几种方式小结
Mar 12 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
python 实现性别识别
Nov 21 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 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 获得汉字拼音首字母的函数
2009/08/01 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
pycharm永久激活超详细教程
2020/10/29 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
董事长职责范文
2013/11/08 职场文书
《悯农》教学反思
2014/04/28 职场文书
创业培训计划书
2014/05/03 职场文书
小区推广策划方案
2014/06/06 职场文书
2014年客房部工作总结
2014/11/22 职场文书
自我推荐信怎么写
2015/03/24 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis