关于这两者的区别自己一开始记得住但是过了一段时间就容易忘记,所以写一篇博客来记录一下。此文章为转载的文章,因为写的比较细,所以特此写一篇博客:

地址:https://blog.csdn.net/mr_evanchen/article/details/77879967

1、json.dumps()

json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。

[python] view plain copy

  1. import json
  2. name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
  3. jsObj = json.dumps(name_emb)
  4. print(name_emb)
  5. print(jsObj)
  6. print(type(name_emb))
  7. print(type(jsObj))

运行结果如下:

[python] view plain copy

  1. {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
  2. {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
  3. <type 'dict'>
  4. <type 'str'>

若在数据写入json文件时,未先进行转换,报错如下

[python] view plain copy

  1. import json
  2. name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
  3. emb_filename = ('/home/cqh/faceData/emb_json.json')
  4. # jsObj = json.dumps(name_emb)
  5. with open(emb_filename, "w") as f:
  6. f.write(name_emb)
  7. f.close()

转换后再写入,则不报错

2、json.loads()

json.loads()用于将str类型的数据转成dict。

[python] view plain copy

  1. import json
  2. name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
  3. jsDumps = json.dumps(name_emb)
  4. jsLoads = json.loads(jsDumps)
  5. print(name_emb)
  6. print(jsDumps)
  7. print(jsLoads)
  8. print(type(name_emb))
  9. print(type(jsDumps))
  10. print(type(jsLoads))

运行结果如下:

'a'变成了u'a'是因为发生了类型转换,str会转换成unicode

[python] view plain copy

  1. {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
  2. {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
  3. {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
  4. <type 'dict'>
  5. <type 'str'>
  6. <type 'dict'>

 3、json.dump()

json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件

[python] view plain copy

  1. import json
  2. name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
  3. emb_filename = ('/home/cqh/faceData/emb_json.json')
  4. # solution 1
  5. jsObj = json.dumps(name_emb)
  6. with open(emb_filename, "w") as f:
  7. f.write(jsObj)
  8. f.close()
  9. # solution 2
  10. json.dump(name_emb, open(emb_filename, "w"))

运行结果如下:

 4、json.load()

json.load()用于从json文件中读取数据。

[python] view plain copy

  1. import json
  2. emb_filename = ('/home/cqh/faceData/emb_json.json')
  3. jsObj = json.load(open(emb_filename))
  4. print(jsObj)
  5. print(type(jsObj))
  6. for key in jsObj.keys():
  7. print('key: %s   value: %s' % (key,jsObj.get(key)))

运行结果如下:

[python] view plain copy

  1. {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
  2. <type 'dict'>
  3. key: a   value: 1111
  4. key: c   value: 3333
  5. key: b   value: 2222
  6. key: d   value: 4444

python中dump 和dumps load和loads的区别相关推荐

  1. Python中的json.dumps()和json.loads()函数

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 引用模块: import json 编码:把一个Python对象编码转换成Json字符串     json ...

  2. dump、dumps、load、loads的区别

    在爬虫或者处理数据的时候经常会遇到json格式的字符串或者是json格式的文件,使用json包来处理相当方便. dump.dumps.load.loads的区别 dumps.loads区别 dumps ...

  3. load 和 loads的区别

    学习的东西哦随着时间的推移也越来越多,知识是不断积累的,但是奈何好记性不如烂笔头,学过的东西也老是会忘, 今天在文件中读取数据入库的时候竟然忘了load 和 loads 的区别,分别都是用来干什么的用 ...

  4. python中remove函数是什么意思,python中pop函数和remove函数有什么区别

    python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...

  5. python中模块(Module)和包(Package)的区别 (导入模块、导入包)(import导包)

    如下结构,mycompany就是包,abc.py和xyz.py就是模块 mycompany ├─ __init__.py ├─ abc.py └─ xyz.py 参考文章:Python中模块(Modu ...

  6. hibernate中get方法和load方法的根本区别

    hibernate中get方法和load方法的根本区别 如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来 ...

  7. Python中“xx+=xx”与“xx=xx+xx”的区别

    Python中"xx+=xx"与"xx=xx+xx"的区别: 可变类型有: list(列表),dict(字典) 不可变类型有: string,integer,t ...

  8. python中的单引号和双引号的区别

    python中的单引号和双引号的区别 今天在码代码的过程中突然想到这个问题,于是上网浏览了一下,发现在python中两种表达方式是没有区别的,两种表达方式都可以用来表达一个字符串.但是这两种通用的表达 ...

  9. Python中集合set和字典dict的用法区别

    Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...

最新文章

  1. 【通俗理解线性代数】 -- 内积与相关
  2. 巧妙的 排序+去重——C语言
  3. MNIST数据集下载资源
  4. 一文读懂区块链上的隐私与监管问题
  5. c++判断数字是否为3的倍数的算法实现(附完整源码)
  6. 双十一快到了,快递却不干了?
  7. 成本预算的四个步骤_工业企业成本管理之成本控制体系的构建
  8. linux 基础命令汇总
  9. 仿 微信飞机大战项目
  10. 电气工程及自动化 (独立本科) 自考
  11. 有监督学习、无监督学习、半监督学习和强化学习的总结
  12. 聊聊Dotnetty
  13. java连接wamp_eclipse php wamp配置教程
  14. 洛谷P4704 太极剑(乱搞)
  15. 最新版PS CC 2017版下载,可汉化可激活
  16. Java实现 LeetCode 517 超级洗衣机
  17. Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++
  18. CAD制图软件中多线段显示不正确怎么办?
  19. online-DDL详细原理介绍及gh-ost讲解
  20. ECharts 区域缩放组件使用详解

热门文章

  1. mysql like模糊查询表名_mysql模糊查询like/REGEXP
  2. C语言文件系统相关函数
  3. NGUI PK UGUI
  4. Matplotlib是什么
  5. 看完这篇操作系统,和面试官扯皮就没问题了。
  6. 转 Linux ssh连接时提示The authenticity of如何去除
  7. uniApp配置微信分享 uniApp跳转微信小程序
  8. ubuntu判断是hdd sdd
  9. python代码编译反编译
  10. 编码问题的发展及python2和python3的编码差异