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序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...
随机推荐
- Flip Game poj 1753
Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29731 Accepted: 12886 Descr ...
- hdu4027 开方,记录
A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use ...
- SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html
SpringMVC上传压缩文件,解压文件,并检测上传文件中是否有index.html 说明: 1.环境:SpringMVC+Spring+Tomcat7+JDK1.7 2.支持 zip和rar格式的压 ...
- UWP brush
---some words---- 1.Alpha:透明度 2.Argb :Alpha red green blue 3.brush: [brʌʃ] 刷子,笔画,笔刷 4.fore 前头 5.F ...
- CN_Week1_Receptive_Field
0. The introduction: 1. An example: Models of "Receptive Fields". 2. An intuitive method o ...
- 简单Elixir游戏服设计-创建玩家模型
删除model.ex 创建玩家模型 player.ex, 简单化,只有唯一标识,昵称,金币,够用了. 选择 map 代表数据,是为了扩展数据结构,方便增加功能.struct也是可以的. add_num ...
- C#程序员应该养成的程序性能优化写法
转载一个别人的文章 隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒…… 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对 ...
- JAVAEE企业级应用开发浅谈第二辑:MVC和三层架构
上海尚学堂警句:一份信心,一份努力,一份成功:十分信心,十分努力,十分成功. Step1.情景概要 Hello,小伙伴们,昨天跟大家分享了JAVA EE 企业级应用开发中大家耳熟能详的概念-三层架构, ...
- Appium python自动化测试系列之Android UIAutomator终极定位(七)
android uiautomator text定位 可能有人不知道为什么说android uiautomator是终极定位,而且android uiautomator和appium有什么关系呢?如果 ...
- Windows 10下Docker使用经验谈
最近一直在开发Apworks框架的案例代码,同时也在一起修复Apworks框架中的Bug和一些设计上的不足.遇到的一个普遍问题是,代码的调试过程需要依赖很多外部系统,比如MongoDB.Postgre ...