Python模块——json
简介
json全名是JavaScript Object Notation(即:Javascript对象标记)。它是JavaScript的子集,JSON是轻量级的文本数据交换格式。前端和后端进行数据交互,其实就是js和python进行数据交互,但json数据是不能被python识别的,故需要转码,即序列化和反序列化。而今天学习的模块json就是实现这一功能。在python中是自带这个模块的,故不需要自己另外安装。
json数据与python数据区别
json数据的名称必须用双引号来包括,这也是json数据的特点。下面是两幅两个数据的转化参照图。
参照上面两幅图可以发现,python的集合类型是不能参与转化到json的,且json数据也没有set类型。
json方法
首先我们用json的一个魔法方法all来查看json的方法有哪些?
import json
print (json.__all__)
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
可以看到上面共有7个方法,下面讲解下其中四个最常用的方法。
- dumps:此方法是将python对象转换为json对象,实现序列化过程。下面是一个小小实例。
import json
data = {
'name' : 'wl',
'age' : 18,
'tu' : (1,2,3),
'li' : ['a','b','c'],
'kong' : None,
'shi' : True,
'dict' : {1:2,3:4}
}
json_data = json.dumps(data)
print(json_data)
{"shi": true, "age": 18, "tu": [1, 2, 3], "kong": null, "li": ["a", "b", "c"], "name": "wl", "dict": {"1": 2, "3": 4}}
- loads:此方法刚好与dumps方法相反,它实现的是序列化的反过程。
python_data = json.loads(json_data)
print(python_data)
print(type(python_data))
{'tu': [1, 2, 3], 'name': 'wl', 'li': ['a', 'b', 'c'], 'shi': True, 'dict': {'3': 4, '1': 2}, 'kong': None, 'age': 18}
<class 'dict'>
可以发现,python的列表和json的数组可以相互转换,但python的元组与json的数组并不是,元组只能转换成json的数组,而数组却转不回去,其只能转成python的列表。
- dump:与dumps不同的是,此方法是在文件里进行操作序列化的过程,故常常配合于with open语句。
with open('data.json','w+') as f:
json.dump(data,f)
f.seek(0)
print(f.read())
{"dict": {"1": 2, "3": 4}, "name": "wl", "tu": [1, 2, 3], "kong": null, "li": ["a", "b", "c"], "age": 18, "shi": true}
- load:load方法与dump相反,它实现在文件中的序列化反过程。
with open('data.json','r') as f:
print(json.load(f))
{'li': ['a', 'b', 'c'], 'name': 'wl', 'shi': True, 'tu': [1, 2, 3], 'dict': {'3': 4, '1': 2}, 'kong': None, 'age': 18}
Python模块——json的更多相关文章
- Python模块(json)
json json模块,用来处理json风格的数据 一.json的数据格式 json是javascripts的标准格式,json的格式是由若干个 键/值(key,values) 对的集合,该集合可以理 ...
- 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)
json 模块 import json data = { 'name':'aa', 'age':18, 'lis':[1,3,4], 'tupe':(4,5,6), 'None':None } j = ...
- python模块-json、pickle、shelve
json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
- day19 python模块 json模块 pickle模块
day19 python 一.序列化模块 序列类型: 列表 字符串 元组 bytes 序列化: 特指字符串和bytes, 就是把其他的数据类型转化成序列的数据类型的过程 dic = ...
- python 模块-json
1.JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Lan ...
- python 模块之-json
python 模块json import json x="[null,true,false,1]" print(json.loads(x)) #---------------- ...
- python模块(json和pickle模块)
json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...
- python模块time&datetime&json & picle&14.logging等
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
随机推荐
- P4147 玉蟾宫(悬线法求最大子矩阵)
P4147 玉蟾宫 悬线法 ,\(l_{i,j},r_{i,j},up_{i,j}\) 分别表示 \((i,j)\) 这个点向左,右,上能到达的远点.然后面积就很好办了.具体实现见代码. 然而,还有更 ...
- 如何在Ubuntu 18.04上安装和卸载TeamViewer
卸载命令:sudo apt --purge remove teamviewer 安装:https://www.linuxidc.com/Linux/2018-05/152282.htm 如何在Ubun ...
- EUI库 - 10 - 使用自定义组件
步骤 1 在根节点,添加一个自定义的命名空间 2 可以设置skinName 自定义组件规范 1 不复用的不要用自定义组件 2 属性必须要有默认值(赋值为null也可以),因为TS编译器会把没有默 ...
- jq监听
$(window).resize(function () {//风电月表格自适应高度 var handHeight =$(".tree-handler").height() $(& ...
- java课程之团队开发冲刺阶段2.8
昨日总结: 1.具体情况已经写在了昨天的当日总结当中 遇到的问题: 1.toolbar的返回键与菜单键冲突,导致无法同时使用 今天的任务: 1.完整实现课程查询任务 当日总结: 1.完整实现,唯一的遗 ...
- soap调用Jar包冲突,SOAPMessageContext
================================ ©Copyright 蕃薯耀 2020-01-07 https://www.cnblogs.com/fanshuyao/ soap调用 ...
- Python模块进阶、标准库、扩展库
模块进阶 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的. 它是Python的一个组成部分.这些标准库是Python为你准 ...
- 04 Unity2D
Unity2D系统是Unity引擎进行2D制作时使用的 Sprite精灵:在Unity2D制作中将图片称作精灵(Sprite),为了提高游戏效率,降低对GPU的损耗,通常将一类的图片拼接成一张大图来使 ...
- python单链表的基本操作思路
单链表: 1.定义链表 class ListNode: # 定义节点 def __init__(self, x): self.val = x # 节点当前值 self.next = None # 指向 ...
- 云平台发展前沿报告 微软云平台——Windows Azure
微软云平台——Windows Azure Windows Azure 是微软研发的公有云计算平台.该平台可供企业在互联网上运行应用,并可进行扩展.通过Windows Azure,企业能够在多个数据中心 ...