详解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通过索引遍历列表的方法
May 04 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
Python实现自动整理文件的脚本
Dec 17 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获取随机数字和字母的方法详解
2013/06/06 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
伦敦一卡通:The London Pass
2018/11/30 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
高中毕业生生活的自我评价
2013/12/08 职场文书
初中家长寄语
2014/04/02 职场文书
感恩教育活动总结
2014/05/05 职场文书
体育之星事迹材料
2014/05/11 职场文书
爱与责任演讲稿
2014/05/20 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
2014年文员工作总结
2014/11/18 职场文书
门面房租房协议书
2014/12/01 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
react 路由Link配置详解
2021/11/11 Javascript