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 3中实现类型检查器的简单方法
Jul 03 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
Python for循环与range函数的使用详解
Mar 23 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
python获取Pandas列名的几种方法
Aug 07 Python
python中class的定义及使用教程
Sep 18 Python
Python调用Windows命令打印文件
Feb 07 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
Django自定义YamlField实现过程解析
Nov 11 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 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 ADODB使用方法集锦
2008/03/25 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
js右键菜单效果代码
2007/07/21 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
python格式化字符串实例总结
2014/09/28 Python
编写Python CGI脚本的教程
2015/06/29 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
python学生管理系统开发
2019/01/30 Python
pytest中文文档之编写断言
2019/09/12 Python
python3.8下载及安装步骤详解
2020/01/15 Python
详解Python IO口多路复用
2020/06/17 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
《海伦?凯勒》教学反思
2014/04/17 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
2014年教育工作总结
2014/11/26 职场文书
计划生育责任书
2015/05/09 职场文书
毕业证明书
2015/06/19 职场文书
党员转正大会主持词
2015/07/02 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers