参考官网 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的更多相关文章

  1. Python ,pickle

    @Python pickle模块学习   pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. ---------------------------------------- ...

  2. (Python编程)Pickle对象

    Programming Python, 3rd Edition 翻译 最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD 19.4. Pickled Obje ...

  3. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

  4. 从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞

    从watevrCTF-2019:Pickle Store中学习python之pickle序列化漏洞 pickle提供了一个简单的持久化功能.可以将对象以文件的形式存放在磁盘上. 其本质是Picklin ...

  5. python3 jason & pickle

    #Author by Andy#_*_ coding:utf-8 _*_import jsonimport pickledef sayhello(name): print('Hello %s' %na ...

  6. 【python】pickle模块

    持久性的基本思想很简单.假定有一个 Python 程序,它可能是一个管理日常待办事项的程序,您希望在多次执行这个程序之间可以保存应用程序对象(待办事项).换句话说,您希望将对象存储在磁盘上,便于以后检 ...

  7. Python模块(pickle)

    pickle 序列化和反序列化 序列化作用 序列化使用 cPickle使用例 Python提供一个标准的模块,称为pickle.使用它你可以在一个文件中储存任何Python对象,之后你又可以把它完整无 ...

  8. Python初学——pickle & set

    pickle 存放数据 保存和提取python运算完的结果 首先import pickle模块 定义一个字典: a_dict={'da':111,2:[23,1,4],'23':{1:2,'d':'s ...

  9. python序列化pickle/cPickle

    一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...

随机推荐

  1. HSF服务的开发与使用

    1.HSF服务的开发 1) 基于Maven创建一个web工程HSFService,如下图,其他的可以自定义. 2)创建好好在src/main目录下创建一个java目录,并将其设置为sources fo ...

  2. 实战系列之 Node.js 玩转 Java

    这些年以来,Node.js的兴起,JavaScript已经从当年的“世界最被误解的语言”变成了“世界最流行的语言”.且其发展之势,从语言本身的进化,库和包的增长,工具支持的完善,star项目和领域解决 ...

  3. php Socket通信

    <?php error_reporting(0); $host = "0.0.0.0"; $port = 1082; $maxUser = 10; set_time_limi ...

  4. jvm系列(十):如何优化Java GC「译」

    本文由CrowHawk翻译,是Java GC调优的经典佳作. 本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三 ...

  5. wpf值转换器IValueConverter例子

    转载:http://blog.163.com/wangzhenguo2005@126/blog/static/37140526201085113430862/ 值转换器可以把一种类型转换成另一种类型. ...

  6. 使用spark对hive表中的多列数据判重

    本文处理的场景如下,hive表中的数据,对其中的多列进行判重deduplicate. 1.先解决依赖,spark相关的所有包,pom.xml spark-hive是我们进行hive表spark处理的关 ...

  7. ELK日志收集分析系统配置

    ELK是日志收益与分析的利器. 1.elasticsearch集群搭建 略 2.logstash日志收集 我这里的实现分如下2步,中间用redis队列做缓冲,可以有效的避免es压力过大: 1.n个ag ...

  8. Linux文件类型介绍

    文件类型介绍: Linux系统不同于Windows系统,两者文件类型和文件扩展名也有很大的差异.Linux中的文件类型和Linux文件的文件扩展名所代表的意义和Windows系统完全不同.用户一般通过 ...

  9. iOS音频格式PCM转G711u(或G711a-law)

    请尊重作者劳动成果,如需转载本博客文章请注明出处!谢谢合作!  inputData是PCM的实时数据,可以通过转码,获取到最后导出的G711u数据(sendData) NSUInteger datal ...

  10. PHP 支付

    蚂蚁金服开放平台 2.下载PHP的SDK&demo 3.申请应用 OR 使用沙箱环境 4.生成应用私钥&应用公钥 5.配置config.php 蚂蚁金服开放平台",对,没错, ...