Day 21 序列化模块_Json,Pickle,Shelve
序列化 , 数据类型,列表 元组, 字符串
只有字符串能被写入文件中.
能在网络上传输的只能是bytes - 字符串
把要传输的和要存储的内容转换成字符串.
字符串 转换回 要传输和存储的内容
序列化只有两种作用.
1. 网络传输
2. 数据持久化 -写在文件里
json
pickle
shelve
d = {'key1':'value1','key2':'value2'}
print(d)
答案:{'key1': 'value1', 'key2': 'value2'}
print(str(d),type(str(d))) #序列化
答案:{'key1': 'value1', 'key2': 'value2'} <class 'str'>
print(eval(str(d)),type(eval(str(d))))
答案:{'key1': 'value1', 'key2': 'value2'}, <class 'dict'>
import json
d ={ 'key1':'value1','key2':'value2'}
ret =json.dumps(d) #序列化
print(ret ,type(ret)) #json . 输出结果:{"key1": "value1", "key2": "value2"} <class 'str'>
import json
d ={ 'key1':'value1','key2':'value2'}
ret =json.dumps(d) #序列化
print(ret ,type(ret)) #json .
dic = json.loads(ret)
print(dic,type(dic)) # 反序列化操作 dump load 用在文件操作数据类型的序列化与反序列化上.
pickle的用法:
拿数据



import json
data ={ 'username':['李华','二愣子'],'sex':'male','age':}
with open('jason.txt','w',encoding='utf-8') as f :
json.dump(data,f)
# 输出结果到jason.txt 文件中:{"username": ["\u674e\u534e", "\u4e8c\u6123\u5b50"], "sex": "male", "age": 19}
with open('jason.txt','r',encoding='utf-8') as f :
print(json.load(f))
# 输出结果:{'username': ['李华', '二愣子'], 'sex': 'male', 'age': 19}
Json 模块dumps后 是十六进制 文件存储
# with open('pickle_sample','wb') as f:
# pickle.dump(data,f)
# pickle.dump(data,f)
# with open('pickle_sample','rb') as f:
# print(pickle.load(f))
# print(pickle.load(f))
Pickle 模块 dumps后是bytes类型
pickle 模块 dump之后的内容在文件中是乱的 .
Pickle 可以任意的将python中的数据类型序列化 .
Json 只能对列表,字典进行序列化
Day 21 序列化模块_Json,Pickle,Shelve的更多相关文章
- python 全栈开发,Day25(复习,序列化模块json,pickle,shelve,hashlib模块)
一.复习 反射 必须会 必须能看懂 必须知道在哪儿用 hasattr getattr setattr delattr内置方法 必须能看懂 能用尽量用__len__ len(obj)的结果依赖于obj. ...
- python开发模块基础:序列化模块json,pickle,shelve
一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文 ...
- python序列化模块 json&&pickle&&shelve
#序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- Python全栈之路----常用模块----序列化(json&pickle&shelve)模块详解
把内存数据转成字符,叫序列化:把字符转成内存数据类型,叫反序列化. Json模块 Json模块提供了四个功能:序列化:dumps.dump:反序列化:loads.load. import json d ...
- python全栈开发day17-常用模块collections,random,time,os,sys,序列化(json pickle shelve)
1.昨日内容回顾 1.正则表达式 # 正则表达式 —— str # 检测字符串是否符合要求 # 从大段的文字中找到符合要求的内容 1).元字符 #. # 匹配除换行 ...
- Python模块:shutil、序列化(json&pickle&shelve)、xml
shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length]) # 将文件内容拷贝到另一个文件中 import shu ...
- day6_python序列化之 json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
随机推荐
- noi 1997 最优乘车
H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终 ...
- dir/
dos窗口输入dir命令是显示磁盘目录命令: addslashes()使用反斜线转义字符串: exec($command,$output,$return)执行一个外部程序 $command:要执行的命 ...
- Ubuntu 制作离线安装包
2017-04-07 11:39:59 一.应用场景 Ubuntu在不能上网情况下,又需要安装软件或更新系统 二.离线安装包制作 在一台能正常上网的Ubuntu系统上,安装需要的软件包 $sudo a ...
- IE8以下支持css3 border-radius渲染方法
这两天在做个集团网站,web前端妹子技术水平不咋样,写个web和wap 真够费劲的,对之前流行的H5和css3 响应式看来不太会用,扔给我一个半成品~~·非说各种canvas和border-radiu ...
- SqlServer和MySql允许脏读的实现方式,提高查询效率
--Sql Server 允许脏读查询sqlselect * from category with(nolock) --MySql 允许脏读查询sql Mysql没有语法糖,需要原生的sqlSET S ...
- Python中的编码和解码问题
关于Python中遇到的中文字符串的读取和输入时总是遇到一堆问题,到现在还不是特别明白,只是有了一个大概率的理解,就是:字符串是用什么编码格式编码的,就用什么编码格式来解码. encode()对字符串 ...
- centos下安装visual studio code出现can't find libXss.so.1,出现这在类似怎么查找相关包
在安装visual studio code时候.出现libXss.so.1被依赖,这个so文件要查看是属于那个包,通过此命令repoquery --nvr --whatprovides libXss. ...
- python5-常用模块
collection 模块 # pypi 可以查询python的模块在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counte ...
- scanf和fscanf读取文件
这篇是针对推箱子游戏而写的,某个时候在学C语言,最近转到windows设计,不知道是否有同样的感受,后面的东西学了,前面的就有点生疏了.其实,我的理解是,注意力转移了,当集中于当前问题的时候就会忽略以 ...
- oracle创建新的用户 创建序列 并生成自动自增
1.用有dba权限的用户登录:sys用户 system 口令:manager 2.创建一个新用户:create user abc identified by 123456; 3.授予DBA权限: gr ...

