python jason,pickle
参考官网 https://docs.python.org/3/library/json.html
https://docs.python.org/3/library/pickle.html
了解这两个模块首先要知道什么是序列化,反序列化
通常我们把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入磁盘,或通过网络传输到别的机器上。
反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling
区别
1,pickle是一个序列化在文件中存储,提取对象的python模块,json是处理json语言的模块
2,JSON只能处理基本数据类型。pickle能处理所有Python的数据类型。
3,JSON用于各种语言之间的字符转换。pickle用于Python程序对象的持久化或者Python程序间对象网络传输,但不同版本的Python序列化可能还有差异。
json
json序列化,将之转换为字符串
dumps,dump (区别:dumps将对象序列号,dump将对象序列号并保存到文件)
dumps
为了效果展现加了pprint模块
import json
import pprint
a={"b": "Hello","c":'好',"a": 'world'}
b=json.dumps(a,ensure_ascii=False,indent=4,separators=(',', ':'),sort_keys=True)
#ensure_ascii默认开启不加会将中文字符转义,indent缩进默认无,separators分隔符默认(',', ':')
print(b)
print (type(b))
pprint.pprint(b)
输出

dump
#coding=utf-8
import json
dict1={"b": "Hello","c":'好',"a": 'world'}
with open('1.txt','a') as f:
json.dump(dict1,f,ensure_ascii=False,indent=4,separators=(',', ':'),sort_keys=True)
json反序列化
load,loads(区别loads将序列号字符串反序列化,load将序列化字符串从文件读取并反序列化)
loads
import json
import pprint
a={"b": "Hello","c":'好',"a": 'world'}
b=json.dumps(a,ensure_ascii=False,indent=4,separators=(',', ':'),sort_keys=True)
#ensure_ascii默认开启不加会将中文字符转义,indent缩进默认无,separators分隔符默认(',', ':')
c=json.loads(b,encoding='utf-8')
pprint.pprint(b)
pprint.pprint(c)
输出

load
#coding=utf-8
import json
import pprint
with open('1.txt','r',encoding='utf-8') as f:
a=json.load(f)
pprint.pprint(a)
输出

pickle模块
同样拥有dumps,dump,load,loads
dumps与loads
#coding=utf-8
import pickle
import pprint
dict1={"b": "Hello","c":'好',"a": 'world'}
a=pickle.dumps(dict1)
print(type(a))
pprint.pprint(a)
b=pickle.loads(a,encoding='utf-8')
pprint.pprint(b)
print(type(b))
输出

dump与load
#coding=utf-8
import pickle
import pprint
dict1={"b": "Hello","c":'好',"a": 'world'}
with open('1.txt','wb') as f:
pickle.dump(dict1,f)
with open('1.txt', 'rb') as f:
data = pickle.load(f)
pprint.pprint(data)
输出

shelve模块
import shelve
f=shelve.open('3.txt')
f['info']={'name':'liu','age':''}
#f['mode']={'txt'}
p=f.get('info')
q=f['info']['name']
print (p,q)
python jason,pickle的更多相关文章
- Python ,pickle
@Python pickle模块学习 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. ---------------------------------------- ...
- (Python编程)Pickle对象
Programming Python, 3rd Edition 翻译 最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD 19.4. Pickled Obje ...
- Python 序列化 pickle/cPickle模块
Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...
- 从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞
从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. 其本质是Picklin ...
- python3 jason & pickle
#Author by Andy#_*_ coding:utf-8 _*_import jsonimport pickledef sayhello(name): print('Hello %s' %na ...
- 【python】pickle模块
持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...
- Python模块(pickle)
pickle 序列化和反序列化 序列化作用 序列化使用 cPickle使用例 Python提供一个标准的模块,称为pickle.使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无 ...
- Python初学——pickle & set
pickle 存放数据 保存和提取python运算完的结果 首先import pickle模块 定义一个字典: a_dict={'da':111,2:[23,1,4],'23':{1:2,'d':'s ...
- python序列化pickle/cPickle
一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...
随机推荐
- 概率图论PGM的D-Separation(D分离)
目录[-] 本文大部分来自:http://www.zhujun.me/d-separation-separation-d.html 一.引言 二.三种情况分析 三.总结 四.应用例子 五.参考资料 其 ...
- 从头编写 asp.net core 2.0 web api 基础框架 (1)
工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...
- 如何修改select标签的默认下拉箭头样式?
对于一般的项目而言,select标签在浏览器中表现出来的默认样式也不算丑,但是一次项目中,项目经理却要求对select标签本身进行样式修改,美化其下拉小箭头的样式.我思考和尝试了许多方法,最终得到一种 ...
- vue前端页面跳转参数传递及存储
不同页面间进行参数传递,实现方式有很多种,最简单最直接的方式就是在页面跳转时通过路由传递参数,如下所示. 路由传递参数 this.$router.push({ name: '跳入页面', params ...
- Java视频扩展知识 线程池的了解
Java视频扩展知识 线程池的了解 1.简单介绍: Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用.为我们在开发中处理线程的 ...
- YYModel学习总结YYClassInfo(1)
OC的run-time 机制,简直像是网络上的猫! 我在开发中很少用到,但是作为iOS开发 人家肯定会问这个东西,所以深入的学习了下. 对于 run-time的入手,YYModel的学习,简直让人美滋 ...
- JavaWeb基础之JdbcUtils工具类final
JdbcUtils工具类3.0最终版,添加了事务相关功能和释放链接.最终版本可以直接打成jar包,在后面的基本项目都会使用该工具类 1. JdbcUtils代码 /** * 最终版 * @author ...
- Druid连接池
Druid 连接池简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.J ...
- CSS之 relative 特性
1. 自身特性: 如left,right,top,bottom定位都是相对于自身位置定位. 当left与right同时存在,lfet生效. 当top与bottom同时存在,top生效. 无侵入,保留原 ...
- (10.19)Java小作业
在java的学习过程中数组的版块也是十分重要的,包括一些教程也会在这个知识点花上更多的时间来讲解,足以证明 这个知识点的重要性,今天想和大家分享一道学习数组过程中不可避免的求最值题. 已知一个整形数组 ...