之前,在学习python时,一直弄不明白pickle和json模块的序列化和反序例化之间的区别和用法,最近闲来有时间,重新研究了这两个模块,也算是基本搞明白他们之中的区别了。

用于序列化的两个模块,

  • json,用于字符串 和 python数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

Json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

看下面这个例子,或许你能明白他们之间的区别

import pickledata = ['aa', 'bb', 'cc']
# dumps 将数据通过特殊的形式转换为只有python语言认识的字符串
p_str = pickle.dumps(data)
print(p_str)
# loads  将pickle数据转换为python的数据结构
mes = pickle.loads(p_str)
print(mes)# dump 将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
with open('tmp.pw','wb') as f:pickle.dump(data,f)# load 从数据文件中读取数据,并转换为python的数据结构
with open('tmp.pw','rb') as f:print(pickle.load(f))

json和pickle模块中的dump和load操作其实就是对数据进行编码和解码的处理

  • 编码:把一个Python对象编码转换成Json字符串   json.dumps()
  • 解码:把Json格式字符串解码转换成Python对象   json.loads()

转载于:https://www.cnblogs.com/change1220/p/8484932.html

python中的序列化与反序列化相关推荐

  1. python中常用的序列化模块_Python中的序列化和反序列化

    为什么要序列化 内存中的字典.列表.集合以及各种对象,如何保存到一个文件中. 设计一套协议,按照某种规则,把内存中的数据保存到文件中,文件是一个个字节序列.所以必须把数据额转换为字节序列,输出到文件, ...

  2. OWASP TOP 10(六)反序列化漏洞(序列化和反序列化、漏洞原理、PHP中的序列化和反序列化、魔术方法、Typecho_v1.0中的反序列化漏洞)

    文章目录 反序列化漏洞 一.概述 1. 序列化和反序列化 2. 序列化的目的 二.PHP中的序列化与反序列化 1. 概述 2. 示例序列化与反序列化 3. 反序列化漏洞 - PHP中的魔术方法 - T ...

  3. python 二叉树的序列化和反序列化

    python 二叉树的序列化和反序列化 一.leetcode 297 二.为什么要反序列化? 三.反序列化设计 四.序列化设计 五.leetcode 297题 一.leetcode 297 序列化是将 ...

  4. fileinputstream自定义类序列化和反序列化_Rest Assured篇:Java中的序列化和反序列化...

    点击上方蓝字设为星标 每天傍晚伴你一起成长! Java 中的序列化和反序列化是一个重要的编程概念.它适用于所有主要的编程语言.在本章中,我们将尝试在Java语言的上下文中理解此概念.在本章的最后,我们 ...

  5. 谈谈:.Net中的序列化和反序列化

    序列化和反序列化相信大家都经常听到,也都会用, 然而有些人可能不知道:.net为什么要有这个东西以及.net Frameword如何为我们实现这样的机制, 在这里我也是简单谈谈我对序列化和反序列化的一 ...

  6. .Net 中关于序列化和反序列化Json的方法

    .Net SDK中关于序列化和反序列化Json的方法 项目中遇到和服务端交互时需要传递数据包为json格式的包,所以在服务端和SDK中都需要对json进行解析和组合的操作, 并且对一些复杂结构的jso ...

  7. js序列化与反序列化和C#中json序列化与反序列化

    序列化:将Object转换成JSON字符串 let data = JSON.stringify(obj); // 将JSON对象转化为JSON字符 let data = obj.toJSONStrin ...

  8. JAVA中JSON序列化和反序列化

    JAVA中JSON序列化和反序列化 1 FASTJSON的序列化和反序列化 1.1 主函数 1.2 自定义对象 2 GSON序列化和反序列化 2.1 主函数 2.2 自定义对象 总结 不同包序列化和反 ...

  9. php中的序列化与反序列化[喜悦原创]

    php中的序列化与反序列化 1.serialize() <===> unserialize(),这个大家用的最多, 老熟人了 session保存默认用的就是这个. 如果想存储对象,数组数据 ...

最新文章

  1. iOS 9音频应用播放音频之音量设置与声道设置
  2. vmalloc 实现
  3. 未来的计算机作文 800字,未来科技作文800字
  4. 6年级下册计算机教案,六年级下册信息技术教案 (6).doc
  5. day14 Python函数
  6. Ubuntu gedit中文乱码-转
  7. asp.net 2.0中的defaultulr属性
  8. X86工控机虚拟显示器设置(nomachine远程桌面)
  9. leetcode题解持续更新
  10. 域名抢注代码_如何停止域名抢注攻击
  11. LightBox -灯箱效果插件(非常漂亮) Jquery灯箱效果
  12. 居民身份证号码每个数字代表什么
  13. 高斯滤波/高斯模糊(Gaussian blur)和高斯噪声(Gaussian noise)
  14. video.js+jquery.danmu.js实现视频播放+发送弹幕
  15. 标准C语言各种时间函数用法
  16. 华清远见上海中心22071班
  17. 踩坑日记:Parameter ‘XXX‘ not found. Available parameters are [param5, param6]解决一下午。。。。
  18. android listview替代,Android笔记——RecyclerView替代ListView
  19. 【XML和Java】手写Java程序引用xsd验证xml
  20. 用Python制作销售数据可视化看板,展示分析一步到位!

热门文章

  1. android 展示星期方式,Android显示从一周到另一周的日期(星期四至星期四)
  2. 小程序沉浸式_企业开发小程序:客户裂变式增长
  3. deepin下Clion连接mysql_CLion如何添加依赖库 ? 需要把mysql/Connector c++放入 用cpp连接数据库...
  4. 4pics1word android,4 Pics 1 Word
  5. lfu算法实现c语言_哈希查找算法(C语言实现)
  6. 数据结构--链式线性表
  7. python程序生成exe_使用Python程序生成QR代码的Python程序
  8. php curl form-data,在php curl multipart / form-data请求中发送一个文件和json数据
  9. 远控免杀专题(20)-GreatSCT免杀
  10. 【竞赛题解】Codeforces Round #715 (Div. 2) C