关于 Python json中load和loads区别


Posted in Python onNovember 07, 2021

一、相同点

  • dump dumps 都实现了序列化
  • load loads 都实现反序列化

变量从内存中变成可存储或传输的过程称之为序列化序列化是将对象状态转化为可保存或可传输格式的过程。

变量内容从序列化的对象重新读到内存里称之为反序列化反序列化是流转换为对象。

二、区别

1.load 和 loads (反序列化)

load:针对文件句柄,将json格式的字符转换为dict,从文件中读取 (将string转换为dict)

a_json = json.load(open('demo.json','r'))

loads:针对内存对象,将string转换为dict (将string转换为dict)

a = json.loads('{'a':'1111','b':'2222'}')

2.dump 和 dumps(序列化)

dump:将dict类型转换为json字符串格式,写入到文件 (易存储)

a_dict = {'a':'1111','b':'2222'}
json.dump(a_dict, open('demo.json', 'w')

dumps:将dict转换为string (易传输)

a_dict = {'a':'1111','b':'2222'}
a_str = json.dumps(a_dict)

总结:

根据序列化和反序列的特性

  • loads: 是将string转换为dict
  • dumps: 是将dict转换为string
  • load: 是将里json格式字符串转化为dict,读取文件
  • dump: 是将dict类型转换为json格式字符串,存入文件

三、JSON进阶

1.序列化

# 使用class对象的__dict__方法
class Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score
import json
s = Student('Bob', 20, 88)
print(json.dumps(s, default=lambda obj: obj.__dict__))

2.反序列化

#Python学习交流群:531509025

def dict2student(d):
    return Student(d['name'], d['age'], d['score'])

json_str = '{"age": 20, "score": 88, "name": "Bob"}'
print(json.loads(json_str, object_hook=dict2student))

四、python中的序列化和反序列化

Python提供两个模块来实现序列化:cPicklepickle。这两个模块功能是一样的,区别在于cPickle是C语言写的,速度快,pickle是纯Python写的,速度慢。

  • 变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling
  • 变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling
try:
    import cPickle as pickle
except ImportError:
    import pickle

1.将内存对象存取到磁盘

a = dict(a=1, b=2, c=3)
pickle.dumps(a)     # 将对象序列化为str然后存入文件

a = dict(a=1, b=2, c=3)
pickle.dump(a, open('a.txt', 'wb')) # 使用dump直接把对象序列化为file-like Object,注意是二进制存储

2.从磁盘读取到内存对象

pickle.load(open('a.txt', 'rb'))    #从file-like Object中直接反序列化出对象

到此这篇关于关于 Python json中load和loads区别的文章就介绍到这了,更多相关 Python json中load和loads区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的gevent框架的入门教程
Apr 29 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
Python编程实现正则删除命令功能
Aug 30 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
python里dict变成list实例方法
Jun 26 Python
python单例模式的多种实现方法
Jul 26 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 #Python
Python人工智能之混合高斯模型运动目标检测详解分析
7个关于Python的经典基础案例
Nov 07 #Python
python机器学习创建基于规则聊天机器人过程示例详解
Python中Numpy和Matplotlib的基本使用指南
python模块与C和C++动态库相互调用实现过程示例
Nov 02 #Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 #Python
You might like
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
两种php给图片加水印的实现代码
2020/04/18 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
详解Python中的序列化与反序列化的使用
2015/06/30 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
django中的数据库迁移的实现
2020/03/16 Python
python3 logging日志封装实例
2020/04/08 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
大学生职业生涯规划书
2014/03/14 职场文书
2014高考励志标语
2014/06/05 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
公务员年度个人总结
2015/02/12 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书