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使用cStringIO实现临时内存文件访问的方法
Mar 26 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
Python3如何解决字符编码问题详解
Apr 23 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
Python函数中的可变长参数详解
Sep 12 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
Python代码块及缓存机制原理详解
Dec 13 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
Python多线程的退出控制实现
Aug 10 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+DBM的同学录程序(4)
2006/10/09 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
php文件上传类完整实例
2016/05/14 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
[01:19:34]2014 DOTA2国际邀请赛中国区预选赛 New Element VS Dream time
2014/05/22 DOTA
用python写asp详细讲解
2013/12/16 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
pandas数据集的端到端处理
2019/02/18 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python如何进行时间处理
2020/08/06 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
主持人大赛开场白
2015/05/29 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
吃通javascript正则表达式
2021/04/21 Javascript