序列化模块--json模块--pickle模块-shelve模块
什么叫序列化?
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传播到远程,因为硬盘或网络传输时只能接受bytes
例:
把内存数据 转成字符
# data ={
# 'roles':[
# {'role':'monster','type':'pip','life':50},
# {'role':'hero','type':'关羽','life':80}
# ]
# }
#
# f = open("game_status",'w')
# f.write(str(data))
例:把字符转成 内存数据
f=open("game_status",'r')
d =f.read()
d =eval(d) #eval能把字符串转化成各种数据类型
print(d['roles'])
'''把内存数据 转成字符,叫序列化
把字符转成 内存数据 叫反序列化'''
json 模块
# import json
# data ={
# 'roles':[
# {'role':'monster','type':'pip','life':50},
# {'role':'hero','type':'关羽','life':80}
# ]
# }
# d = json.dumps(data) #.dumps是将数据转成字符串
# print(d,type(d))
# f = open("test.json","w")
# json.dump(data,f) #dump直接转成字符串,并写入文件 # d = json.dumps(data) #将数据转成字符串
# d2 = json.loads(d) #加载字符串,并转成字典赋值给d2
# print(d2['roles']) #打印字典d2['roles'] # f = open("test.json","r") #打开文件test.json
# data =json.load(f) #加载字符串f并转成字典,赋值 data
# print(data['roles'],type(data)) '''只是把数据类型转成字符串存到内存里的意义?
json.dumps json.loads
1、把你的内存数据 通过网络 共享给远程其它人
2、字义了不同语言的之前的交互规则
1、纯文本,坏处,不能共享复杂的数据类型
2、xml,坏处,占空间大
3、json,简单,可读性好''' import json
例:
# import json
# data ={
# 'roles':[
# {'role':'monster','type':'pip','life':50},
# {'role':'hero','type':'关羽','life':80}
# ]
# }
# d = json.dumps(data) #.dumps是将数据转成字符串
# print(d,type(d))
# f = open("test.json","w")
# json.dump(data,f) #dump直接转成字符串,并写入文件 # d = json.dumps(data) #将数据转成字符串
# d2 = json.loads(d) #加载字符串,并转成字典赋值给d2
# print(d2['roles']) #打印字典d2['roles'] # f = open("test.json","r") #打开文件test.json
# data =json.load(f) #加载字符串f并转成字典,赋值 data
# print(data['roles'],type(data)) '''只是把数据类型转成字符串存到内存里的意义?
json.dumps json.loads
1、把你的内存数据 通过网络 共享给远程其它人
2、字义了不同语言的之前的交互规则
1、纯文本,坏处,不能共享复杂的数据类型
2、xml,坏处,占空间大
3、json,简单,可读性好''' import json
# import json
# data ={
# 'roles':[
# {'role':'monster','type':'pip','life':50},
# {'role':'hero','type':'关羽','life':80}
# ]
# }
# d = json.dumps(data) #.dumps是将数据转成字符串
# print(d,type(d))
# f = open("test.json","w")
# json.dump(data,f) #dump直接转成字符串,并写入文件
# d = json.dumps(data) #将数据转成字符串
# d2 = json.loads(d) #加载字符串,并转成字典赋值给d2
# print(d2['roles']) #打印字典d2['roles'] # f = open("test.json","r") #打开文件test.json
# data =json.load(f) #加载字符串f并转成字典,赋值 data
# print(data['roles'],type(data)) '''只是把数据类型转成字符串存到内存里的意义?
json.dumps json.loads
1、把你的内存数据 通过网络 共享给远程其它人
2、字义了不同语言的之前的交互规则
1、纯文本,坏处,不能共享复杂的数据类型
2、xml,坏处,占空间大
3、json,简单,可读性好'''
import json
# f =open("json_file",'w',encoding='utf-8')
#
# d={'name':'alex','age':22}
# l=[1,2,3,4,'rain']
# json.dump(d,f) #dump字典到文件
# json.dump(l,f) #dump列表到文件,dump时没问题,但lodad时会报错。因为dump了多次不同类型的数据 f =open("json_file",'r',encoding='utf-8')
print(json.load(f)) #载入dump多次的不同数据类型会报错。 Pickle模块
import pickle
# d ={'name':'alex','age':22}
#
# l =[1,2,3,4,'rain']
# pk = open("data.pkl",'wb') #bytes,写入文件模式必须必成wb
# pickle.dump(d,pk) f= open("data.pkl","rb")
d =pickle.load(f)
print(d) '''json支持的序列化类型
str,int,tuple,list,dict
pickle支持的序列化类型
支持python里的所有的数据类型
只能在python里使用''' shelve模块
shelve支持所有的数据类型,只支持python,一般都用shelve模块,很少用pickle模块
import shelve
f = shelve.open('shelve_test') #打开一个文件 names = ['alex','rain','test']
info ={'name':'alex','age':22} f['names'] =names #持久化列表
f['info_dic']=info f.close()
序列化模块--json模块--pickle模块-shelve模块的更多相关文章
- 【转】Python之数据序列化(json、pickle、shelve)
[转]Python之数据序列化(json.pickle.shelve) 本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型 ...
- python常见模块之序列化(json与pickle以及shelve)
什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...
- 20,序列化模块 json,pickle,shelve
序列化模块 什么叫序列化? 将原本的字典,列表等内容转换成一个字符串的过程叫做序列化. 序列化的目的? 数据结构 通过序列化 转成 str. str 通过反序列化 转化成数据结构. json: jso ...
- Python—序列化和反序列化模块(json、pickle和shelve)
什么是序列化 我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化.在python中为pickling,在其他语言中也被称之为serialization,marshalling,flat ...
- os常用模块,json,pickle,shelve模块,正则表达式(实现运算符分离),logging模块,配置模块,路径叠加,哈希算法
一.os常用模块 显示当前工作目录 print(os.getcwd()) 返回上一层目录 os.chdir("..") 创建文件包 os.makedirs('python2/bin ...
- python模块-json、pickle、shelve
json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...
- 常用文件操作模块json,pickle、shelve和XML
一.json 和 pickle模块 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Js ...
- python json、 pickle 、shelve 模块
json 模块 用于序列化的模块 json,用于字符串 和 python数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load #!/usr/bin/env pyt ...
- 第九节:os、sys、json、pickle、shelve模块
OS模块: os.getcwd()获取当前路径os.chdir()改变目录os.curdir返回当前目录os.pardir()父目录os.makedirs('a/b/c')创建多层目录os.remov ...
- (十四)json、pickle与shelve模块
任何语言,都有自己的数据类型,那么不同的语言怎么找到一个通用的标准? 比如,后端用Python写的,前端是js,那么后端如果传一个dic字典给前端,前端肯定不认. 所以就有了序列化这个概念. 什么是序 ...
随机推荐
- OC与JS交互前言
OC与JS交互过程中,可能会需要使用本地image资源及html,css,js文件,这些资源应该如何被加载? 一.WebView加载HTML UIWebView提供了三个方法来加载html资源 1. ...
- Laravel事件监听器listener与事件订阅者Subscriber的区别
其实就一句话: Each event can have multiple listeners, but a listener can't listen to more than a single ev ...
- tomcat7 开机自启动(转)
转自 http://blog.csdn.net/rainyspring4540/article/details/51861079 环境:win7 tomcat7 开机自启动: 使用管理员打开命令提示 ...
- [转]ubuntu16.04安装teamviewer12依赖包解决
安装teamviewer下载地址:http://www.teamviewer.com/en/download/linux/ 下载的是:teamviewer_12.0.76279_i386.deb ...
- 入口类和@SpringBootApplication
SpringBoot通常有一个名为*Application的入口类,入口类里有一个标准的Java应用的入口方法,main方法,在该方法中使用SpringApplication.run(xxxxxApp ...
- NEO
平台: Windows 类型: 虚拟机镜像 软件包: .net core neo application server basic software blockchain neo open sourc ...
- thinkphp分页+条件查询
最近项目上面有一个带条件查询的分页列表,一开始form用的post,点击第二页就没有跳转成功,原因是分页是get请求,post数据链接到其他页面就会被清除. 解决办法: 1.form表单method= ...
- Graylog+elasticsearch+mongodb集群+nginx负载均衡前端
网上有张图画的很好,搜索有关它的配置文章,google里有几篇英文的,都是依靠haproxy等或别的什么实现,没有纯粹的Graylog+elasticsearch+mongodb集群,项目需要,只有自 ...
- 使用后台程序的第一个程序hello word
1.在advanced\backend\SiteController.php中输入 2.在advanced\backend\Views文件夹下添加名字为say.php的文件,文件名必须和控制器中的视图 ...
- fdisk - Linux分区表操作工具软件
总览 fdisk [-u]设备名 fdisk -l [-u] [设备名 ...] fdisk -s分区 ... fdisk -v 描述 硬盘可以被分成一个或多个逻辑磁盘,称为 分区. 这些分区信息都存 ...