python学习笔记:json与字典的转换(dump 和dumps load和loads的区别)
1. json序列化(字典转成字符串)方法:
dumps:无文件操作 dump:序列化+写入文件
2. json反序列化(字符串转成字典)方法:
loads:无文件操作 load: 读文件+反序列化
1、基本使用
import json# 导入模块
d = {'s':'you','d':'are'} #给一个字典
j = json.dumps(d)#dumps字典转换成字符串
print(type(j))
print(j) d1 = json.loads(j)#loads字符串转换成字典
print(type(d1))
print(d1)
print(d1.keys())#输出字典的key
print(d1.values())#输出字典的值 执行后得到的结果:
<class 'str'>
{"d": "are", "s": "you"} <class 'dict'>
{'d': 'are', 's': 'you'}
dict_keys(['d', 's'])
dict_values(['are', 'you'])
2、json.dumps()
json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
import json name_emb = {'a':'','b':'','c':'','d':''} jsObj = json.dumps(name_emb) print(name_emb)
print(jsObj) print(type(name_emb))
print(type(jsObj))
运行结果如下:
{'a': '', 'c': '', 'b': '', 'd': ''} {"a": "", "c": "", "b": "", "d": ""} <type 'dict'> <type 'str'>
3、json.loads()
json.loads()用于将str类型的数据转成dict。
import json name_emb = {'a':'','b':'','c':'','d':''} 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': '', 'c': '', 'b': '', 'd': ''}
{"a": "", "c": "", "b": "", "d": ""}
{u'a': u'', u'c': u'', u'b': u'', u'd': u''}
<type 'dict'>
<type 'str'>
<type 'dict'>
4、json.dump()
json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件
import json name_emb = {'a':'','b':'','c':'','d':''} emb_filename = ('/home/cqh/faceData/emb_json.json') # 方法 1
jsObj = json.dumps(name_emb)
with open(emb_filename, "w") as f:
f.write(jsObj)
f.close() # 方法 2
json.dump(name_emb, open(emb_filename, "w"))
5、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
python学习笔记:json与字典的转换(dump 和dumps load和loads的区别)的更多相关文章
- 【python学习笔记】4.字典:当索引不好用时
[python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...
- python学习笔记6(字典)
映射:键值对的关系,键(key)映射值(value) 字典是Python唯一的映射类型 >>> phonebook = {'} >>> phonebook {'} ...
- python学习笔记之三:字典,当索引不好用时
字典是python中唯一内建的映射类型.字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里.键可以是数字,字符串甚至是元组. 1. 创建和使用字典 字典可以通过下面的方式创建: phon ...
- python学习笔记(三)、字典
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...
- Python 学习笔记6 变量-字典
字典是python中一个十分重要的变量,他是一个可变的容器对象.通过一组key(键)和value(值)对组成一个元素. 组成形式为{'key':'value', 'key':'value'}.整个字典 ...
- python学习笔记07-元组 字典
元组: 元组里面的元素不可修改 创建后只可读 不可写 一个元素的时候 在后面加一个逗号 字典: 无序的 Python 中唯一的映射类型 采用键值对的形式存储数据 key必须是可哈希的 可哈希表示 ...
- python学习笔记(三)-列表&字典
列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...
- python学习笔记(datetime、字符串转换)
datetime对象与字符串可以互相转化 代码如下: from datetime import datetime def datetime_string(time): return time.strf ...
- python 学习笔记(三)根据字典中值的大小对字典中的项排序
字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...
随机推荐
- 将QTP运行时的错误截图上传到QC
Class QCImageErrorCapture Sub Class_Terminate() 'Check if the current test has failed. If failed the ...
- Java前端控制器模式~
前端控制器设计模式用于提供集中式请求处理机制,以便所有请求将由单个处理程序处理.此处理程序可以执行请求的身份验证/授权/记录或跟踪,然后将请求传递到相应的处理程序. 以下是这种类型的设计模式的实体. ...
- ABAP字符串处理
字符串中包含单引号:单引号前面再加一个单引号 例:jest~stat = 'E0002' jest~stat = 'E0003' OR jest~stat = 'E0004' IF z_stat IS ...
- Fiddler设置展示接口响应时间
在Tool bar上面找到Rules->CustomRules 在class Handlers{ 里面添加 function BeginRequestTime(oS: Session){ ...
- vue-router(路由)详细教程
vue-router(路由)详细教程:https://blog.csdn.net/wulala_hei/article/details/80488727 vue路由组件传参-页面通信:https:// ...
- 创建网关项目(Spring Cloud Gateway)
创建网关项目 加入网关后微服务的架构图 创建项目 POM文件 <properties> <java.version>1.8</java.version> <s ...
- FZU 1876 JinYueTuan(排列组合)
Description Let’s have a look at the picture below Now, do you know what it’s? Yeah , O(∩_∩)O~ , It ...
- UVA 12672 Eleven(DP)
12672 - Eleven Time limit: 5.000 seconds In this problem, we refer to the digits of a positive integ ...
- 重读ORB_SLAM之LoopClosing线程难点
1. DetectLoop 这里有个ConsistenGroup概念,比较难懂.这里是最让人迷惑的地方.一旦vbConsistentGroup为真,其他帧的spCanditateGroup就进不来了. ...
- [Java 教程 04] Java基础语法
在上一篇文章中我们已经运行了个简单的java程序,但是没有给大家讲解代码部分的内容与含义.学习,我们要做到知其然而知其所以然,所以本篇文章我们就来讲解java程序的基本语法,学完这篇文章你再回头看上篇 ...