Python Json模块中dumps、loads、dump、load函数介绍


Posted in Python onMay 15, 2018

Json模块dumps、loads、dump、load函数介绍

1、json.dumps()

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

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))

运行结果如下:

{'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
<type 'dict'>
<type 'str'>

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

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()

Python Json模块中dumps、loads、dump、load函数介绍

转换后再写入,则不报错

Python Json模块中dumps、loads、dump、load函数介绍

2、json.loads()

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

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

{'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文件

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"))

运行结果如下:

Python Json模块中dumps、loads、dump、load函数介绍

4、json.load()

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

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)))

运行结果如下:

{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 相关文章推荐
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
Python selenium爬虫实现定时任务过程解析
Jun 08 Python
对Python 字典元素进行删除的方法
Jul 31 Python
简单了解Python字典copy与赋值的区别
Sep 16 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Python道路车道线检测的实现
Jun 27 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 Python
Python日志模块logging用法
Jun 05 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 #Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 #Python
浅析PHP与Python进行数据交互
May 15 #Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 #Python
django自带的server 让外网主机访问方法
May 14 #Python
Python中利用xpath解析HTML的方法
May 14 #Python
利用pyinstaller将py文件打包为exe的方法
May 14 #Python
You might like
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python使用range函数计算一组数和的方法
2015/05/07 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python对切片命名的实现方法
2018/10/16 Python
Python 移动光标位置的方法
2019/01/20 Python
Python实现多进程的四种方式
2019/02/22 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
深入了解python列表(LIST)
2020/06/08 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
python 动态绘制爱心的示例
2020/09/27 Python
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
学生请假条
2014/04/11 职场文书
小学生安全演讲稿
2014/04/25 职场文书
小学语文教研活动总结
2014/07/01 职场文书
父亲节活动策划方案
2014/08/24 职场文书
工厂标语大全
2014/10/06 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
2015年副班长工作总结
2015/05/15 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
浅析MongoDB之安全认证
2021/06/26 MongoDB
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android