python中dump 和dumps load和loads的区别
关于这两者的区别自己一开始记得住但是过了一段时间就容易忘记,所以写一篇博客来记录一下。此文章为转载的文章,因为写的比较细,所以特此写一篇博客:
地址:https://blog.csdn.net/mr_evanchen/article/details/77879967
1、json.dumps()
json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
[python] view plain copy
- import json
- name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
- jsObj = json.dumps(name_emb)
- print(name_emb)
- print(jsObj)
- print(type(name_emb))
- print(type(jsObj))
运行结果如下:
[python] view plain copy
- {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
- {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
- <type 'dict'>
- <type 'str'>
若在数据写入json文件时,未先进行转换,报错如下
[python] view plain copy
- import json
- name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
- emb_filename = ('/home/cqh/faceData/emb_json.json')
- # jsObj = json.dumps(name_emb)
- with open(emb_filename, "w") as f:
- f.write(name_emb)
- f.close()
转换后再写入,则不报错
2、json.loads()
json.loads()用于将str类型的数据转成dict。
[python] view plain copy
- import json
- name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
- jsDumps = json.dumps(name_emb)
- jsLoads = json.loads(jsDumps)
- print(name_emb)
- print(jsDumps)
- print(jsLoads)
- print(type(name_emb))
- print(type(jsDumps))
- print(type(jsLoads))
运行结果如下:
'a'变成了u'a'是因为发生了类型转换,str会转换成unicode
[python] view plain copy
- {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
- {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
- {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
- <type 'dict'>
- <type 'str'>
- <type 'dict'>
3、json.dump()
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件
[python] view plain copy
- import json
- name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
- emb_filename = ('/home/cqh/faceData/emb_json.json')
- # solution 1
- jsObj = json.dumps(name_emb)
- with open(emb_filename, "w") as f:
- f.write(jsObj)
- f.close()
- # solution 2
- json.dump(name_emb, open(emb_filename, "w"))
运行结果如下:
4、json.load()
json.load()用于从json文件中读取数据。
[python] view plain copy
- import json
- emb_filename = ('/home/cqh/faceData/emb_json.json')
- jsObj = json.load(open(emb_filename))
- print(jsObj)
- print(type(jsObj))
- for key in jsObj.keys():
- print('key: %s value: %s' % (key,jsObj.get(key)))
运行结果如下:
[python] view plain copy
- {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
- <type 'dict'>
- key: a value: 1111
- key: c value: 3333
- key: b value: 2222
- key: d value: 4444
python中dump 和dumps load和loads的区别相关推荐
- Python中的json.dumps()和json.loads()函数
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 引用模块: import json 编码:把一个Python对象编码转换成Json字符串 json ...
- dump、dumps、load、loads的区别
在爬虫或者处理数据的时候经常会遇到json格式的字符串或者是json格式的文件,使用json包来处理相当方便. dump.dumps.load.loads的区别 dumps.loads区别 dumps ...
- load 和 loads的区别
学习的东西哦随着时间的推移也越来越多,知识是不断积累的,但是奈何好记性不如烂笔头,学过的东西也老是会忘, 今天在文件中读取数据入库的时候竟然忘了load 和 loads 的区别,分别都是用来干什么的用 ...
- python中remove函数是什么意思,python中pop函数和remove函数有什么区别
python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...
- python中模块(Module)和包(Package)的区别 (导入模块、导入包)(import导包)
如下结构,mycompany就是包,abc.py和xyz.py就是模块 mycompany ├─ __init__.py ├─ abc.py └─ xyz.py 参考文章:Python中模块(Modu ...
- hibernate中get方法和load方法的根本区别
hibernate中get方法和load方法的根本区别 如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来 ...
- Python中“xx+=xx”与“xx=xx+xx”的区别
Python中"xx+=xx"与"xx=xx+xx"的区别: 可变类型有: list(列表),dict(字典) 不可变类型有: string,integer,t ...
- python中的单引号和双引号的区别
python中的单引号和双引号的区别 今天在码代码的过程中突然想到这个问题,于是上网浏览了一下,发现在python中两种表达方式是没有区别的,两种表达方式都可以用来表达一个字符串.但是这两种通用的表达 ...
- Python中集合set和字典dict的用法区别
Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...
最新文章
- 【通俗理解线性代数】 -- 内积与相关
- 巧妙的 排序+去重——C语言
- MNIST数据集下载资源
- 一文读懂区块链上的隐私与监管问题
- c++判断数字是否为3的倍数的算法实现(附完整源码)
- 双十一快到了,快递却不干了?
- 成本预算的四个步骤_工业企业成本管理之成本控制体系的构建
- linux 基础命令汇总
- 仿 微信飞机大战项目
- 电气工程及自动化 (独立本科) 自考
- 有监督学习、无监督学习、半监督学习和强化学习的总结
- 聊聊Dotnetty
- java连接wamp_eclipse php wamp配置教程
- 洛谷P4704 太极剑(乱搞)
- 最新版PS CC 2017版下载,可汉化可激活
- Java实现 LeetCode 517 超级洗衣机
- Opencv4.5.1 微信二维码识别功能 QRCode 编译与使用 C++
- CAD制图软件中多线段显示不正确怎么办?
- online-DDL详细原理介绍及gh-ost讲解
- ECharts 区域缩放组件使用详解