什么叫序列化?

序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes。

把字符转换成内存数据类型,叫反序列化。

为什么要序列化?

你打游戏过程中,打累了,停下来,关掉游戏、想过2天再玩,2天之后,游戏又从你上次停止的地方继续运行,你上次游戏的进度肯定保存在硬盘上了,是以何种形式呢?游戏过程中产生的很多临时数据是不规律的,可能在你关掉游戏时正好有10个列表,3个嵌套字典的数据集合在内存里,需要存下来?你如何存?把列表变成文件里的多行多列形式?那嵌套字典呢?根本没法存。所以,若是有种办法可以直接把内存数据存到硬盘上,下次程序再启动,再从硬盘上读回来,还是原来的格式的话,那是极好的。

用于序列化的两个模块

json,用于字符串 和 python数据类型间进行转换

pickle,用于python特有的类型 和 python的数据类型间进行转换

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

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

importpickle

data= {'k1':123,'k2':'Hello'}#pickle.dumps 将数据通过特殊的形式转换位只有python语言认识的字符串

p_str =pickle.dumps(data)print(p_str)#pickle.dump 将数据通过特殊的形式转换位只有python语言认识的字符串,并写入文件

with open('D:/result.pk','wb',encoding='utf8') as fp:

pickle.dump(data,fp)importjson#json.dumps 将数据通过特殊的形式转换位所有程序语言都认识的字符串

j_str =json.dumps(data)print(j_str)#pickle.dump 将数据通过特殊的形式转换位只有python语言认识的字符串,并写入文件

with open('D:/result.json','wb',encoding='utf8') as fp:

json.dump(data,fp)

json vs pickle:

JSON:

优点:跨语言、体积小

缺点:只能支持int\str\list\tuple\dict

Pickle:

优点:专为python设计,支持python所有的数据类型

缺点:只能在python中使用,存储数据占空间大

python 序列化_python之序列化相关推荐

  1. python 序列化_python怎么序列化

    pickle模块,json模块 (1)把变量从内存中变成可存储或传输的过程,称之为序列化.Python中叫pickling,其他语言中也被称为serialization,marshalling,fla ...

  2. pythonjson序列化_Python Json序列化与反序列化的示例

    不同的编程语言有不同的数据类型; 比如说: Python的数据类型有(dict.list.string.int.float.long.bool.None) Java的数据类型有(bool.char.b ...

  3. python建立数据库并序列化_python之数据的序列化

    参考博客:http://www.cnblogs.com/yyds/p/6563608.html 数据的序列化功能表 json.dumps() 将python数据类型转换为(json)字符串 json. ...

  4. python建立数据库并序列化_Python之数据序列化(json、pickle、shelve)

    一.python类型数据和JSON数据格式互相转换 pthon 中str类型到JSON中转为unicode类型,None转为null,dict对应object 二. 序列化/反序列化 将对象转换为可通 ...

  5. 解决Python自带的json序列化工具不能序列化datetime类型数据问题

    解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...

  6. python中常用的序列化模块_使用pickle模块对python对象进行序列化

    pickle模块是Python自带的一个标准模块,专用于Python各种对象的序列化和反序列化,可用于Python内置的各种数据对象(Python中一切都是对象),也可用于程序员自定义的类和对象. p ...

  7. python学习笔记 day20 序列化模块(二)

    pickle 可以将任何数据类型转为字符串:但是pickle之后的结果也只有python可以看懂,而且反序列化依靠python代码: pickle 和 json 很像 都是有dumps loads d ...

  8. 一文学会Python标准库struct序列化与反序列化

    使用Python标准库struct序列化Python整数.实数.字节串时,需要使用struct模块的pack()函数把对象按指定的格式进行序列化,然后使用文件对象的write()方法将序列化的结果字节 ...

  9. cpickle支持的python版本_Python cPickle模块(转)

    持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让 ...

最新文章

  1. 【紧急】支付宝全面停止微信合作
  2. 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
  3. 【翻译】Programming Ruby——正则表达式
  4. android安卓机版市场,安卓各版本市场份额数据更新 安卓8.0暴增
  5. 【BZOJ2004】[Hnoi2010]Bus 公交线路 状压+矩阵乘法
  6. Oracle run leve,UNIX自动启动oracle
  7. 网络/系统调试维护笔记
  8. 无需深厚技术背景,也可以做好系统和应用维护管理
  9. Flash 显示全景图
  10. Atitit sql注入的防范 目录 1.1. 检查数据类型 1 2. 有限操作DML 1 2.1. 限制执行函数黑名单机制 2 2.2. 限制执行系统sp 2 2.3. 限制数据查询语句类型,只能
  11. android ui设计最新字体,UI设计常用字体规范
  12. 《矩阵分析与应用》(第2版)———知识+Matlab2018a——2nd
  13. 日剧·日综资源集合(建议收藏)
  14. 2021-05-18 C#.NET面试题 一张长方形的桌面上放n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与
  15. 微服务守护神-Sentinel-热点-授权-系统规则
  16. 华为云开发者学堂——学习笔记
  17. 2023年全国最新二级建造师精选真题及答案49
  18. Stm32型号查阅手册
  19. 刚到马来西亚旅游怎么临时解决电话卡问题
  20. 2022年我在梦想清单里又加了3条

热门文章

  1. 算法分析与设计-实验二 动态规划算法设计
  2. 【LeetCode】LeetCode之乘积最大子数组——枚举+动态规划+Kadane算法
  3. Python OpenCV——函数 cv2.findContours 运行错误【in function ‘cv::pointSetBoundingRect‘】解决方案
  4. Spring Boot——集成Swagger2
  5. Edraw Max——亿图图示设计软件基本使用教程
  6. CG CTF CRYPTO Keyboard
  7. b^3 - a^3 = c
  8. modelMapper.map的一个使用例子
  9. 【jetson nano】ubuntu- python-ssh远程控制jetson nano与单片机串口通信
  10. 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环