json和pickle序列化模块
一、json序列化模块
1、序列化:将内存数据转成字符串加以保存。
2、反序列化:将字符串转成内存数据加以读取。
data = { '北京':{
'五道口':{
'sohu':'引擎',
}
}
}
# dumps <--> loads
'''
只是把数据类型转成字符串存到内存(json.dumps,json.loads)里的意义?
1、把你的内存数据通过网络远程共享给其他人
2、定义了不同语言之间的交互规则
<1> 纯文本:不能共享复杂的数据类型
<2> xml:占空间大
<3> json:简单,可读性好
'''
d = json.dumps(data) # 仅转成字符串 <class 'str'>
print(d,type(d)) # {"\u5317\u4eac": {"\u4e94\u9053\u53e3": {"sohu": "\u5f15\u64ce"}}} d_1 = json.loads(d) # 将字符串转成原本的数据类型 <class 'dict'>
print(d_1,type(d_1)) # {'北京': {'五道口': {'sohu': '引擎'}}} # dump <--> load
f = open('test.json','w') # 先打开再读写
d2 = json.dump(data,f) # 转成字符串并写入文件 f1 = open('test.json','r')
d_2 = json.load(f1) # 将文件转成原来的数据类型
print(d_2) # {'北京': {'五道口': {'sohu': '引擎'}}}
二、pickle序列化模块
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# write by congcong import pickle dict = {'name':'cc','age':21}
len = ['python','hello','world'] # dumps <--> loads
d = pickle.dumps(dict) # 字符串转成bytes类型
print(d) # b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x02\x00\x00\x00ccq\x02X\x03\x00\x00\x00ageq\x03K\x15u.'
d_1 = pickle.loads(d) # bytes类型转为原数据类型
# print(d_1) # {'name': 'cc', 'age': 21} # dump <--> load
# pk = open('data.pkl','wb')
# d2 = pickle.dump(dict,pk) # 字符串转成bytes类型,并保存到硬盘 pk_r = open('data.pkl','rb') # 将硬盘里的bytes类型转为原数据类型
d_2 = pickle.load(pk_r)
print(d_2) # {'name': 'cc', 'age': 21} '''
json 和 pickle 的区别:
json 支持的数据类型 str ,int ,tuple , list , dict ,可跨语言 pickle 支持python里所有的数据类型,但只能在python中使用 '''
json和pickle序列化模块的更多相关文章
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- (1)json和pickle序列化模块
json 和pickle 模块 json和pickle模块下都有4个功能 dumps <---> loads (序列化 <--->反序列化) dump <---> ...
- json and pickle 序列化
前言 文件只能存储字符串.二进制,若把内存的数据对象存到硬盘 从硬盘里读取数据,里面不止是字符串的类型,因此用到了json and pickle 序列化 json序列化 作用:用于不同语言进行的数 ...
- json、pickle\shelve模块(超级好用~!)讲解
json.pickle模块讲解 见我前面的文章:http://www.cnblogs.com/itfat/p/7456054.html shelve模块讲解(超级好用~!) json和pickle的模 ...
- day14-Python运维开发基础(内置函数、pickle序列化模块、math数学模块)
1. 内置函数 # ### 内置函数 # abs 绝对值函数 res = abs(-10) print(res) # round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!) 奇进 ...
- collections queue、os、datetime,序列化(json和pickle)模块
目录 Collections 模块 1.nametuple 2.deque(双端队列) 3.双端队列(deque): 4.Odereddict(有序字典): 5.Defaultdict(默认字典,首字 ...
- Python的json and pickle序列化
json序列化和json反序列化 #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' import json a = ...
- Python 入门基础14 --time、os、random、json、pickle 常用模块1
今日内容: 一.常用模块 2019.04.10 更新 1.time:时间 2.calendar:日历 3.datetime:可以运算的时间 4.sys:系统 5.os:操作系统 6.os.path:系 ...
随机推荐
- 2017.11.16 STM8L052 温度控制器
1 J-link和ST-link的兼容性 STM8只能用ST-link.J-link兼容所有的(大部分而已)的ARM内核IC mark: http://bbs.eeworld.com.cn/thre ...
- 利用 localStorage 储存css js
链接 版本号, 可以后台输出到jsp页面上 移动端webapp值得一试: 兼容性好 网速慢,LS读取+eval大多数情况下快于304 webapp不需要seo,css也可以缓存,再通过js加载 浏览 ...
- So sad! ,Asphyre Closure
So sad ! Asphyre Closure! 不过我相信开发App用Delphi应该是快的. 越与平台无关,优势越明显. 积累的组件市场. 虽然objc 有很多开源支持. 但总感觉还不够delp ...
- 有效处理Java异常三原则
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? ...
- 前端基础之jQuery入门 01
jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互, ...
- python函数返回值
2016-08-09 15:01:38 python函数返回值使用return语句,可以返回任意类型的数.如果return语句执行,它之后的所有语句都不再执行. def func(x,y): pri ...
- SCARA——OpenGL入门学习五六(三维变换、动画)
OpenGL入门学习(五) 此课为三维变换的内容,比较枯燥.主要是因为很多函数在单独使用时都不好描述其效果, 在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从-1到1,还只能 ...
- python 递归函数和二分查找
1.初始递归 递归属于函数中的一种特殊函数,功能迅速并且干净利落,在函数中递归的基本就是在函数中调用自己本身 def func(): print(111) func() func()#将会无限循环‘1 ...
- laravel中有条件使用where
在项目开发的过程中;有时候会有多个参数 去用在where查询中;那么这里的where语句是可能有也可能没有的 1.用原生的mysql语句来实现 private function getData($ty ...
- c#实现QQ群成员列表导出及邮件群发之模拟QQ登陆
主题已迁移至:http://atiblogs.com/ ITO-神奇的程序员