python 序列化_python之序列化
什么叫序列化?
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受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之序列化相关推荐
- python 序列化_python怎么序列化
pickle模块,json模块 (1)把变量从内存中变成可存储或传输的过程,称之为序列化.Python中叫pickling,其他语言中也被称为serialization,marshalling,fla ...
- pythonjson序列化_Python Json序列化与反序列化的示例
不同的编程语言有不同的数据类型; 比如说: Python的数据类型有(dict.list.string.int.float.long.bool.None) Java的数据类型有(bool.char.b ...
- python建立数据库并序列化_python之数据的序列化
参考博客:http://www.cnblogs.com/yyds/p/6563608.html 数据的序列化功能表 json.dumps() 将python数据类型转换为(json)字符串 json. ...
- python建立数据库并序列化_Python之数据序列化(json、pickle、shelve)
一.python类型数据和JSON数据格式互相转换 pthon 中str类型到JSON中转为unicode类型,None转为null,dict对应object 二. 序列化/反序列化 将对象转换为可通 ...
- 解决Python自带的json序列化工具不能序列化datetime类型数据问题
解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...
- python中常用的序列化模块_使用pickle模块对python对象进行序列化
pickle模块是Python自带的一个标准模块,专用于Python各种对象的序列化和反序列化,可用于Python内置的各种数据对象(Python中一切都是对象),也可用于程序员自定义的类和对象. p ...
- python学习笔记 day20 序列化模块(二)
pickle 可以将任何数据类型转为字符串:但是pickle之后的结果也只有python可以看懂,而且反序列化依靠python代码: pickle 和 json 很像 都是有dumps loads d ...
- 一文学会Python标准库struct序列化与反序列化
使用Python标准库struct序列化Python整数.实数.字节串时,需要使用struct模块的pack()函数把对象按指定的格式进行序列化,然后使用文件对象的write()方法将序列化的结果字节 ...
- cpickle支持的python版本_Python cPickle模块(转)
持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Python 的 pickle以及其它机制)有一个总体认识.另外,还会让 ...
最新文章
- 【紧急】支付宝全面停止微信合作
- 2021年春季学期-信号与系统-第八次作业参考答案-第十二小题
- 【翻译】Programming Ruby——正则表达式
- android安卓机版市场,安卓各版本市场份额数据更新 安卓8.0暴增
- 【BZOJ2004】[Hnoi2010]Bus 公交线路 状压+矩阵乘法
- Oracle run leve,UNIX自动启动oracle
- 网络/系统调试维护笔记
- 无需深厚技术背景,也可以做好系统和应用维护管理
- Flash 显示全景图
- Atitit sql注入的防范 目录 1.1. 检查数据类型 1 2. 有限操作DML 1 2.1. 限制执行函数黑名单机制 2 2.2. 限制执行系统sp 2 2.3. 限制数据查询语句类型,只能
- android ui设计最新字体,UI设计常用字体规范
- 《矩阵分析与应用》(第2版)———知识+Matlab2018a——2nd
- 日剧·日综资源集合(建议收藏)
- 2021-05-18 C#.NET面试题 一张长方形的桌面上放n个一样大小的圆形硬币。这些硬币中可能有一些不完全在桌面内,也可能有一些彼此重叠;当再多放一个硬币而它的圆心在桌面内时,新放的硬币便必定与
- 微服务守护神-Sentinel-热点-授权-系统规则
- 华为云开发者学堂——学习笔记
- 2023年全国最新二级建造师精选真题及答案49
- Stm32型号查阅手册
- 刚到马来西亚旅游怎么临时解决电话卡问题
- 2022年我在梦想清单里又加了3条
热门文章
- 算法分析与设计-实验二 动态规划算法设计
- 【LeetCode】LeetCode之乘积最大子数组——枚举+动态规划+Kadane算法
- Python OpenCV——函数 cv2.findContours 运行错误【in function ‘cv::pointSetBoundingRect‘】解决方案
- Spring Boot——集成Swagger2
- Edraw Max——亿图图示设计软件基本使用教程
- CG CTF CRYPTO Keyboard
- b^3 - a^3 = c
- modelMapper.map的一个使用例子
- 【jetson nano】ubuntu- python-ssh远程控制jetson nano与单片机串口通信
- 【算法】图(一)拓扑排序的实现 图的邻接表算法 判断是否图G中存在环