关于 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 相关文章推荐
python3 实现一行输入,空格隔开的示例
Nov 14 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 Python
Python中函数的返回值示例浅析
Aug 28 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
详解python中eval函数的作用
Oct 22 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
如何解决python多种版本冲突问题
Oct 13 Python
python 对xml解析的示例
Feb 27 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP 裁剪图片
2021/03/09 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
初识Node.js
2014/09/03 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python入门篇之文件
2014/10/20 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python中如何使用insert函数
2020/01/09 Python
如何用python免费看美剧
2020/08/11 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
拓展训练激励口号
2014/06/17 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
我的收音机情缘
2022/04/05 无线电
python如何读取和存储dict()与.json格式文件
2022/06/25 Python