Json中dumps、loads、dump、load函数实例讲解
1.dumps()
1. json.dumps()
用于将字典(dic)类型的数据转成字符串(str),直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
import json name = {'aa':'','bb':'','cc':'','dc':''} jsObj = json.dumps(name) print(name)
print(jsObj) print(type(name))
print(type(jsObj))
运行后结果如下;
{'aa': '', 'cc': '', 'bb': '', 'dd': ''}
{"aa": "", "cc": "", "bb": "", "dd": ""}
<type 'dict'>
<type 'str'>
写入JSON文件后执行时会发生错误:
import json name = {'aa':'','bb':'','cc':'','dd':''} emb_filename = ('/home/cqh/faceData/emb_json.json') # jsObj = json.dumps(name_emb) //未进行函数转化时 with open(emb_filename, "w") as f:
f.write(name)
f.close()
未进行函数转化时,系统报错,当加入该函数的时候系统运行正常。
2.json.loads()
json.loads()用于将str类型的数据转成dict。
import json nameb = {'aa':'','bb':'','cc':'','d':''} jsDumps = json.dumps(name) jsLoads = json.loads(jsDumps) print(name)
print(jsDumps)
print(jsLoads) print(type(name))
print(type(jsDumps))
print(type(jsLoads))
运行结果:
{'aa': '', 'cc': '', 'bb': '', 'dd': ''}
{"aa": "", "cc": "", "bb": "", "dd": ""}
{u'aa': u'', u'cc': u'', u'bb': u'', u'dd': u''}
<type 'dict'>
<type 'str'>
<type 'dict'>
3、json.dump()
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件
import json name_emb = {'a':'','b':'','c':'','d':''} 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文件中读取数据。
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'', u'c': u'', u'b': u'', u'd': u''}
<type 'dict'>
key: a value: 1111
key: c value: 3333
key: b value: 2222
key: d value: 4444
Json中dumps、loads、dump、load函数实例讲解的更多相关文章
- 细说【json&pickle】dumps,loads,dump,load的区别
1 json.dumps() json.dumps()是将字典类型转化成字符串类型. import json name_emb = {'a':'1111','b':'2222','c':'3333', ...
- JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法
通过文件操作,我们可以将字符串写入到一个本地文件.但是,如果是一个对象(例如列表.字典.元组等),就无 法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里. 设计一套协议,按照某种 ...
- 019——VUE中v-for与computer结合功能实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- json模块中dumps()与dump()区别
dumps是将dict转化成json字符串格式,loads是将json字符串转化成dict格式. dump和load也是类似的功能,只是与文件操作结合起来了. dump(写入内容,文件对象) 和loa ...
- Python json模块dumps loads
python中json数据的使用. dumps和loads也是需要成对使用的,就像c++ new/delete malloc/free一样需要成对使用. 看着像json的字符串,也不一定是json字符 ...
- php trim() 函数实例讲解
php trim() 函数移除字符串两侧的空白字符或其他预定义字符,本文章向码农介绍php trim() 函数的使用方法和实例,感兴趣的码农可以参考一下. 定义和用法 trim() 函数移除字符串两侧 ...
- PHP 函数实例讲解
PHP 函数 PHP 的真正威力源自于它的函数. 在 PHP 中,提供了超过 1000 个内建的函数. PHP 内建函数 如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册. P ...
- PHP mysqli_fetch_object() 函数实例讲解
定义和用法 mysqli_fetch_object() 函数从结果集中取得当前行,并作为对象返回. 注释:该函数返回的字段名是区分大小写的. 语法 mysqli_fetch_object(result ...
- php localeconv() 函数实例讲解
php localeconv() 函数返回一包含本地数字及货币格式信息的数组.本文章向码农介绍php localeconv() 函数的使用方法和基本实例.需要的码农可以参考一下. 定义和用法 loca ...
随机推荐
- Oracle INSERT ALL 语句介绍
描述 Oracle INSERT ALL 语句用来用一个 INSERT 语句添加多行.该行可以只使用一个SQL命令插入到一个表或多个表. 语法 Oracle INSERT ALL 语法如下: INSE ...
- C++中long是什么类型
long long本质上还是整型,只不过是一种超长的整型. int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) .long:在32位系统是32位整型,取值范围为-2^31 ~ (2^ ...
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
viewport:移动设备上用来显示网页的那部分区域,但其大小并不局限于那部分可视区域 width设置layout viewport 的宽度,为一个正整数,或字符串"device-widt ...
- QT5.3.1 Quick 开发(二) 项目类型的选择
作为一个转行QT开发的新手,面对基于QML的开发时候 看到很多的项目类型感到很困惑,不知道应该怎么选择.如图: 经过研究发现QT widgets Application.QtQuick Applica ...
- SQL Server ->> SQL Server 2016功能改进之 -- Update Statistics
1) 以前SQL Server更新一张表/索引的间隔是固定的,创建时更新一次,到了500行时更新第二次,接下来就是呈百分比式的间隔去更新,距离数据修改量达到表的行数量的的20%再次触发更新.但是这样的 ...
- jdbc 块提取方式
最近使用jdbc方式查询数据,保存为csv文件中.当然你可以在pl/sql中直接查出来,copy to excel就好了.但我想通过程序实现 1 @Test 2 public void test() ...
- QT网络编程Tcp下C/S架构的即时通信
先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include <QDialog> #in ...
- Python学习---协程 1226
协程[是一个单线程],又称微线程,纤程.英文名Coroutine. 一句话说明什么是协程:协程是一种用户态的轻量级线程[程序员自己去切换线程] 协程条件: 必须在只有一个单线程里实现并发 修改共享数据 ...
- vagrant安装centos7
1. 安装VirtualBox 去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成. 2. 安装V ...
- Web博文目录
前言 博客写的多了,自己翻起来也费劲,这里就进行一下整合. 以前设想自己做DBA,做运维,没想到最后还要走开发这条路,干一行就爱一行...学的扎实点,工作起来也会轻松.—— 送给奋斗的自己 1 Jav ...