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 ...
随机推荐
- parted分区的步骤
使用parted分区的步骤1. fdisk -l ##查看一下当前的存储设备,这里可以看到新加入的磁盘,比如/dev/sdb2. parted /dev/sdb ...
- 【BZOJ1492】【Luogu P4027】 [NOI2007]货币兑换 CDQ分治,平衡树,动态凸包
斜率在转移顺序下不满足单调性的斜率优化\(DP\),用动态凸包来维护.送命题. 简化版题意:每次在凸包上插入一个点,以及求一条斜率为\(K\)的直线与当前凸包的交点.思路简单实现困难. \(P.s\) ...
- eclipse修改代码后都需要clean的解决办法
问题描述: 用STS(类似于Eclipse)正在开发一个JavaWeb项目,但不知怎么的有一天,修改完Java代码,点击运行Tomcat,发现根本没有修改.刚刚开始的时候,因为一开始没找到原因而且工期 ...
- mysql<七>
-- ########## 01.集合逻辑 ########## -- MySQL中,只实现了一种集合逻辑:逻辑与,有两种用法:UNION 和 UNION ALL -- 临时表1 CREATE TAB ...
- CodeForces-449B(单源最短路,思维)
链接: https://vjudge.net/problem/CodeForces-449B 题意: Jzzhu is the president of country A. There are n ...
- 【NOIP2017提高组模拟12.10】幻魔皇
题目 幻魔皇拉比艾尔很喜欢斐波那契树,他想找到神奇的节点对. 所谓斐波那契树,根是一个白色节点,每个白色节点都有一个黑色节点儿子,而每个黑色节点则有一个白色和一个黑色节点儿子.神奇的节点对则是指白色节 ...
- hbase字典顺序表(即ASCII码表顺序)
- spark数据倾斜与解决方法
一.数据倾斜 数据倾斜一般发生在对数据进行重新划分以及聚合的处理过程中.执行Spark作业时,数据倾斜一般发生在shuffle过程中,因为Spark的shuffle过程需要进行数据的重新划分处理.在执 ...
- git 清除缓存
清除git缓存 git config --local --unset credential.helper git config --global --unset credential.helper g ...
- DevExpress.XtraGrid.Views.Grid.GridView
private void SetView() { GridView gridView = (GridView)this.DefaultView; if (gridView != null) { gri ...