相同点

  • 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进阶

序列化

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

反序列化

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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提供两个模块来实现序列化:cPickle和pickle。这两个模块功能是一样的,区别在于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区别相关推荐

  1. python里load什么意思_【python】json中load和loads区别

    相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...

  2. Python基础教程:repr()与str() 的区别

    总的来说 str():将传入的值转换为适合人阅读的字符串形式 repr():将传入的值转换为 Python 解释器可读取的字符串形式 传入整型 # number resp = str(1) print ...

  3. python基础教程第二版答案-《Python基础教程》(第2版修订版)中要注意的地方...

    想必现在大家学习Python都会用3.0及以上的版本了,虽然2.X的版本依然很多,但是这两年随着部分开源项目不再支持2.X版本,3.X已经成为趋势. 正是在这样的大背景下,我最近用这本<Pyth ...

  4. python基础教程第二版和第三版有什么区别-《Python基础教程》(第2版修订版)中要注意的地方...

    想必现在大家学习Python都会用3.0及以上的版本了,虽然2.X的版本依然很多,但是这两年随着部分开源项目不再支持2.X版本,3.X已经成为趋势. 正是在这样的大背景下,我最近用这本<Pyth ...

  5. 467python教程_Magnus Lie Hetland的《Python基础教程(第3版)》自学笔记(持续更新中)...

    转载请注明原创出处,谢谢! 如果读完觉得有收获的话,欢迎点赞加关注. Python基础教程.jpg 快速上手:基础知识 交互式解释器 在Python交互式解释器的提示符>>>后面输入 ...

  6. 全网惟一面向软件测试人员的Python基础教程-在Python中怎么干倒字符串?

    全网惟一面向软件测试人员的Python基础教程 起点:<python软件测试实战宝典>介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你 ...

  7. 全网惟一面向软件测试人员的Python基础教程-在Python中如何优雅的切西瓜呢?

    全网惟一面向软件测试人员的Python基础教程 起点:<python软件测试实战宝典>介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你 ...

  8. Python基础教程:Day14b-网络应用开发

    Python基础教程:网络应用开发 发送电子邮件 在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知.网站向用户发送一个激活账号的链接.银行向客户推广 ...

  9. python基础教程pdf百度云-《Python基础教程(第3版)》PDF高清版

    <python基础教程第3版>PDF高清版  百度云资源,内涵教材源代码 百度云链接:百度云盘 提取码:7r7o 编辑推荐 久负盛名的Python入门经典,是非常优秀的基础教程,深入浅出, ...

最新文章

  1. vue 增加js日志输出文件_Vue.JS项目导入导出JSON文件的方案之一,其他项目也可参考...
  2. win7 + vs2013 + zlib 编译
  3. Leaflet中使用leaflet-search插件实现搜索定位效果
  4. Jerry Wang在SAP社区上获得的徽章
  5. mysql function怎么创建_mysql,function_mysql创建函数出现问题?,mysql,function - phpStudy
  6. Java-数据结构与算法-二分查找法
  7. 关于Spring的几个问题
  8. C++ protected 一种使用场景
  9. python中breakpoint什么意思_it/breakpoint是什么意思
  10. 数据库执行update语句,一直执行不完【已解决】
  11. UUID 生成器有多快
  12. 时钟芯片RX8025T的电源设计
  13. java水彩画效果滤镜,把动物照片转成水彩画效果的PS滤镜教程
  14. html网页两边有空隙,怎么让整个内容缩进?就是四周都有间隙。
  15. 如何使用Easy-POI导入复杂表头的Excel报表(含源码级分析)
  16. IAR程序下载起始地址以及加入BOOTLOAD
  17. Minecraft 1.18.1、1.18.2模组开发 02.方块和物品
  18. Ruby 函数式编程
  19. 【海康摄像头二次开发】移植海康摄像头Android SDK并实现多屏显示
  20. Zabbix优化深信服AC的设备运行时间监控项

热门文章

  1. service-mesh
  2. mvn 主要命令说明
  3. 大学课程重新学习-操作系统
  4. Attachments failing with invalid id (Bugtraker.net)
  5. WebPart(汇总)[转载]
  6. linux中menu命令,menucofig 详解
  7. websphere java和进程管理_jvisualvm/Jconsole监控WAS(WebSphere)中间件
  8. python数据分析常见面试题_python数据分析方向,面试题解答
  9. 【Demo】修改销售订单库存地点
  10. 【转】删除过期数据通用程序