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 相关文章推荐
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
python重试装饰器的简单实现方法
Jan 31 Python
python中如何使用分步式进程计算详解
Mar 22 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
python函数的作用域及关键字详解
Aug 20 Python
用Python画小女孩放风筝的示例
Nov 23 Python
简单了解python元组tuple相关原理
Dec 02 Python
Django框架获取form表单数据方式总结
Apr 22 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
Python collections模块的使用方法
Oct 09 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 读取文件的正确方法
2009/04/29 PHP
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
python 实现return返回多个值
2019/11/19 Python
Django配置跨域并开发测试接口
2020/11/04 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
我的五年职业生涯规划
2014/01/23 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
环保倡议书400字
2014/05/15 职场文书
销售目标责任书
2014/07/23 职场文书
2015新学期家长寄语
2015/02/26 职场文书