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的数据类型间进 ...
随机推荐
- jQuery控制TR显示隐藏
参考链接:http://www.jb51.net/article/51221.htm 通过jQuery的hide和show方法即可.
- DB2数据库常用命令数据库学习
DB2数据库常用命令数据库学习你可以用 get snapshot for locks on XXX 看是那个表锁了,再从相关的操作去查原因吧 db2pd -d 库名 -locks和db2pd -d 库 ...
- binlog怎样参与mysql recover的
转自 Louis Hust's Blog MySQL两阶段提交 29 July 2015 参数介绍 两阶段提交 什么情况下会出现binlog写入了,但是实际这条数据不存在库中? 参数介绍 innod ...
- 二进制搭建kubernetes多master集群【开篇、集群环境和功能介绍】
本文主要说明kubernetes集群使用组建的版本和功能介绍.. 一.组件版本 Kubernetes 1.12.3 Docker 18.06.1-ce Etcd 3.3.10 Flanneld 0.1 ...
- 2018.10.13 bzoj1070: [SCOI2007]修车(费用流)
传送门 费用流经典题目. 自我感觉跟TheWindy′sThe Windy'sTheWindy′s很像. 利用费用提前计算的思想来建图就行了. 代码: #include<bits/stdc++. ...
- 2018.09.16 bzoj3626: [LNOI2014]LCA(树链剖分)
传送门 树链剖分好题. 对于每个点维护一个值vi" role="presentation" style="position: relative;"&g ...
- Django模型层(2)
https://www.cnblogs.com/yuanchenqi/articles/8963244.html from django.db import models class Author(m ...
- 20155320 2016-2017-2 《Java程序设计》第五周学习总结
20155320 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 错误处理 java中所有错误都会被打包为对象,可以通过try catch 代表错误的对象后做 ...
- 几个经典的数学库之一学习---VCGlib(2)
几个经典的数学库之一学习---VCGlib(2) 1. Optional Component(可选的组件) 有许多Vertex和Face的属性并不是一直都是必要的,如Face-Face的邻接关系.VC ...
- shell 脚本 批量修改文件名
修改文件名前 #!/bin/bask # for a in $( ls /etc/yum.repos.d/CentOS* );do if [ $a != '/etc/yum.repos.d/CentO ...

