【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍
1、json.dumps()
json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
转换案例:
1 import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 jsObj = json.dumps(name_emb)
6
7 print(name_emb)
8 print(jsObj)
9
10 print(type(name_emb))
11 print(type(jsObj))
json.dumps()用于将dict类型的数据转成str
1 {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
2 {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
3 <type 'dict'>
4 <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()
未转换时候的错误示例
2、json.loads()
json.loads()用于将str类型的数据转成dict
1 import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 jsDumps = json.dumps(name_emb)
6
7 jsLoads = json.loads(jsDumps)
8
9 print(name_emb)
10 print(jsDumps)
11 print(jsLoads)
12
13 print(type(name_emb))
14 print(type(jsDumps))
15 print(type(jsLoads))
json.loads()用于将str类型的数据转成dict
{'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'> #注:'a'变成了u'a'是因为发生了类型转换,str会转换成unicode
运行结果如下:
注:'a'变成了u'a'是因为发生了类型转换,str会转换成unicode
3、json.dump()
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件
1 import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 emb_filename = ('/home/cqh/faceData/emb_json.json')
6
7 # solution 1
8 jsObj = json.dumps(name_emb)
9 with open(emb_filename, "w") as f:
10 f.write(jsObj)
11 f.close()
12
13 # solution 2
14 json.dump(name_emb, open(emb_filename, "w"))
json.dump()用于将dict类型的数据转成str,并写入到json文件中。
4、json.load()
json.load()用于从json文件中读取数据。
1 import json
2
3 emb_filename = ('/home/cqh/faceData/emb_json.json')
4
5 jsObj = json.load(open(emb_filename))
6
7 print(jsObj)
8 print(type(jsObj))
9
10 for key in jsObj.keys():
11 print('key: %s value: %s' % (key,jsObj.get(key)))
json.load()用于从json文件中读取数据。
1 {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
2 <type 'dict'>
3 key: a value: 1111
4 key: c value: 3333
5 key: b value: 2222
6 key: d value: 4444
结果
【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍的更多相关文章
- python json序列化与反序列化操作
python json序列化与反序列化操作 # dumps() dict-->str 序列化 # loads() str---dict 反序列化 result1 = json.dumps({'a ...
- Python Json序列化与反序列化
在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json ...
- 细说【json&pickle】dumps,loads,dump,load的区别
1 json.dumps() json.dumps()是将字典类型转化成字符串类型. import json name_emb = {'a':'1111','b':'2222','c':'3333', ...
- Python中的Json模块dumps、loads、dump、load函数介绍
Json模块dumps.loads.dump.load函数介绍 1.json.dumps() json.dumps() 用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json ...
- Python库:序列化和反序列化模块pickle介绍
1 前言 在“通过简单示例来理解什么是机器学习”这篇文章里提到了pickle库的使用,本文来做进一步的阐述. 通过简单示例来理解什么是机器学习 pickle是python语言的一个标准模块,安装pyt ...
- python:序列化与反序列化(json、pickle、shelve)
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...
- python的序列化和反序列化以及json
python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数 ...
- Python实现JSON序列化和反序列化
在我的应用中,序列化就是把类转成符合JSON格式的字符串,反序列化就是把JSON格式的字符串转换成类.C#的话直接用Newtonsoft.JSON就可以了,非常好用.本来以为python也会有类似的库 ...
- Json模块dumps、loads、dump、load函数介绍
转自:http://blog.csdn.net/mr_evanchen/article/details/77879967 Json模块dumps.loads.dump.load函数介绍 1.json. ...
随机推荐
- Redis Hashes 数据类型简述
Redis Hashes 是我们日常使用中比较高频的 Redis 数据类型,内部使用 Redis 字典结构存储,底层基于哈希表结构实现. 下面从哈希表节点,哈下表结构,Redis 字典,Redis 字 ...
- 一口气看完45个寄存器,CPU核心技术大揭秘
序言 前段时间,我连续写了十来篇CPU底层系列技术故事文章,有不少读者私信我让我写一下CPU的寄存器. 寄存器这个太多太复杂,不适合写故事,拖了很久,总算是写完了,这篇文章就来详细聊聊x86/x64架 ...
- poj1639,uva1537,uvalive2099,scu1622,fzu1761 Picnic Planning (最小限制生成树)
Picnic Planning Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 10742 Accepted: 3885 ...
- 一文秒懂!Python字符串格式化之format方法详解
format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符串,一定程度上与%目的一致.但在某些方面更加的方便 1.基本用法 1.按照{}的顺序依次匹配括号中的值 s = &q ...
- linux中root目录下下指定磁盘空间扩容
1 查看当前磁盘情况 fdisk -l /dev/sda1 2048 6143 2048 83 Linux /dev/sda2 * 6144 1054719 524288 83 Linux /dev/ ...
- javac -d的意思是?
- Docker启动Mysql镜像
date: 2020-03-14 17:00:00 updated: 2020-03-14 18:00:00 Docker启动Mysql镜像 管理员权限!!! docker run -p 3306:3 ...
- JAVA类库之——Math类(持续更新)
Math类 目录 Math类 1.Math 类中的常量方法 返回π(圆周率)值的方法:PI 返回E(自然对数低)值的方法:E 2.Math 类中的三角函数方法 计算正弦函数值的方法:Sin(radia ...
- 详解git rebase,让你走上git大神之路
在之前的文章当中我们介绍了git merge的用法,明白了通过git merge我们可以合并两个分支的改动.这样我们就可以很方便地进行协同开发了,每个人都在自己的分支下开发代码,开发完毕之后再一起合并 ...
- 【Luogu】P1306 斐波那契公约数 题解
原题链接 嗯...很多人应该是冲着这个标题来的 (斐波那契的魅力) 1.分析题面 点开题目,浏览一遍题目,嗯?这么简单?还是蓝题? 再看看数据范围,感受出题人深深的好意... \(n,m \leq 1 ...