python中的序列化和反序列化
- ~~~~~~滴滴,,什么是序列呢?可以理解为序列就是字符串。
序列化的应用
- 写文件(数据传输)
- 网络传输
- 序列化和反序列化的概念
- 序列化模块:将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。
- 序列化:内存中的对象转换为字节序列(字符串)
- 反序列化:将字节序列转换为内存中的对象
- 序列化的目的:
1.以某种存储形式是自定义对象持久化
2.将对象从一个地方传递到另一个地方
3.使程序更具有维护性- 各种模块的特点和应用
1.json模块:通用的序列化格式 只有很少的一部分数据类型通过json转化为字符串
- 可以进行序列化的:数字 字符串 元组 列表 不能转集合
- 1.dumps() 序列化方法
dic={'a':'1',"b":'2'}
print(type(dic),dic)
import json
str_dic=json.dumps(dic)
print(type(str_dic),str_dic)
结果:
<class 'dict'> {'a': '1', 'b': '2'}
<class 'str'> {"a": "1", "b": "2"}
- 2.loads反序列化方法
- dic_d=json.loads(str_dic)
print(type(dic_d),dic_d)
结果;
<class 'dict'> {'a': '1', 'b': '2'}
- 3.dump和load 不加s 和文件相关的操作
- import json
dic={'a':'1',"b":'2'}
f=open('fff','w',encoding='utf-8')
json.dump(dic,f)
f.close()
- f=open('fff')
res=json.load(f)
print(type(res),res)
结果:
<class 'dict'> {'a': '1', 'b': '2'}
- 当出现中文的时候:加上下面的参数,文件中显示的就是中文了
- ***ensure_ascii=False
- json.dump({'国籍':'美国'},f,ensure_ascii=False)
- ret = json.dumps({'国籍':'美国'},ensure_ascii=False)
2.pickle模块:所有的python中的数据类型都可以转化 但只有pyth理解,且部分反序列化依赖代码
pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化)
3.shelve模块:序列化句柄 直接操作,方便
此模块只提供给我们一个open方法,使用key来访问的,使用起来和字典类似
python中的序列化和反序列化的更多相关文章
- day5-python中的序列化与反序列化-json&pickle
一.概述 玩过稍微大型一点的游戏的朋友都知道,很多游戏的存档功能使得我们可以方便地迅速进入上一次退出的状态(包括装备.等级.经验值等在内的一切运行时数据),那么在程序开发中也存在这样的需求:比较简单的 ...
- Python中的序列化以及pickle和json模块介绍
Python中的序列化指的是在程序运行期间,变量都是在内存中保存着的,如果我们想保留一些运行中的变量值,就可以使用序列化操作把变量内容从内存保存到磁盘中,在Python中这个操作叫pickling,等 ...
- python接口测试之序列化与反序列化(四)
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式 字符串解码为python数据对象.在python的标准库中,专门提供了jso ...
- Net中JSON序列化和反序列化处理(日期时间特殊处理)
0 缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...
- 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变
在net中json序列化与反序列化 准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...
- 浅谈C#中的序列化与反序列化
今天我利用这篇文章给大家讲解一下C#中的序列化与反序列化.这两个概念我们再开发中经常用到,但是我们绝大部分只用到了其中的一部分,剩下的部分很多开发人员并不清楚,甚至可以说是不知道.因此我希望通过这篇文 ...
- python类库32[序列化和反序列化之pickle]
一 pickle pickle模块用来实现python对象的序列化和反序列化.通常地pickle将python对象序列化为二进制流或文件. python对象与文件之间的序列化和反序列化: pi ...
- javaIO中的序列化和反序列化
javaIO中的序列化和反序列化 1.什么是序列化?它是来解决什么问题的 1.我们创建的对象,一般情况下在内存中,程序关闭,或者因为没有地址指向而导致垃圾回收 2.这样,我们的对象就会丢失 3.那么我 ...
- Python库:序列化和反序列化模块pickle介绍
1 前言 在“通过简单示例来理解什么是机器学习”这篇文章里提到了pickle库的使用,本文来做进一步的阐述. 通过简单示例来理解什么是机器学习 pickle是python语言的一个标准模块,安装pyt ...
随机推荐
- 01Java经典问题
1.利用Dos输出hello world 建立一个Test.java文件,放在e盘: public class Test{ public static void main(String[] args) ...
- Vue分割音乐歌词数据函数
parseLyric(lyric) { var lines = lyric.split(/\n/); //使用/n换行,将数据切成一个数组 var getLtricTime = ...
- 乐观锁和 MVCC 的区别?
二者不是一个层面的东西. MVCC(Multi-Version Concurrent Control),基于快照隔离机制(Snapshot Isolations)进行多版本并发控制,是一种以乐观锁为理 ...
- 解决Eclipse中新建jsp文件ISO8859-1 编码问题
看了许多的贴说是在eclipse --> window --> Preferences --> General --> Content Types --> text--& ...
- 【转】encodeURI和decodeURI方法
为什么要两次调用encodeURI来解决乱码问题 https://blog.csdn.net/howlaa/article/details/12834595 请注意 encodeURIComponen ...
- Collections 工具类和 Arrays 工具类常见方法
Collections Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void revers ...
- 【NOIP2016提高A组集训第4场11.1】平衡的子集
题目 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 分析 如果暴力枚举每个人被分到哪 ...
- NOIP2016提高A组模拟9.17总结
第一题,典型的隔板问题, 但是我忘记隔板问题怎么打,一开始在花了1小时,还是没想出来,果断弃疗, 最后的40分钟,我打完了第二题,接着又用了20分钟推敲出一种极其猥琐的式子来代替,可惜预处理的阶乘忘记 ...
- STL::allocator rebind
阅读侯捷的STL源码剖析时,发现在allocator类的代码中有这样一个struct template<class T> class allocator { ... template< ...
- 集合比较器报错java.lang.IllegalArgumentException: Comparison method violates its general contract!
Collections.sort(listMonthlyUsage, new Comparator<MonthlyUsageDto>() { //按照元素从小到大排序 @Override ...