[快学Python3]JSON解析
时间:2022-05-07
本文章向大家介绍[快学Python3]JSON解析,主要内容包括标准库、字典和json互转示例、高级实例、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
本章节将为大家介绍如何使用Python来编码和解码json对象。
json是javascript object notation的简写,是一种轻量级的数据交换格式,易于阅读和编写,是目前前后端最常用的数据交互格式之一。
标准库
在Python中,提供了标准的json库来对json串进行解码和编码解析。
常用的函数如下
- json.dumps 将python对象编码成json字符串, 返回json串
- json.loads 将已编码的json串解码为python对象,返回python对应的数据类型
下面我们看下python对象和json类型的转化对照表:
Python类型 |
Json |
---|---|
字典dict |
object |
list列表、tuple元组 |
array |
str字符串 |
string |
int、long、float |
number |
True |
true |
False |
false |
None |
null |
字典和json互转示例
json串转dict(字典)示例
# -*- coding:utf-8 -*-
__author__ = '苦叶子'
import json
if __name__ == "__main__":
print("json转dict")
json_str = '{"name": "开源优测", "url": "www.testingunion.com", "id": "DeepTest"}'
# 原类型
print("原类型:", type(json_str))
# 转成dict对象
# 会被转换成字典类型
json_dict = json.loads(json_str)
print("转换后的类型:", type(json_dict))
# 遍历字典
for (k, v) in json_dict.items():
print(k," : " , v)
dict字典转json串示例
# -*- coding:utf-8 -*-
__author__ = '苦叶子'
import json
if __name__ == "__main__":
print("字典转json串")
json_dict = {
"name": "开源优测",
"url": "www.testingunion.com",
"id": "DeepTest"
}
print("原类型:" , type(json_dict))
# 将字典转换成json串
# 会被转换成字符串类型
json_str = json.dumps(json_dict)
print("转换后的类型:", type(json_str))
print(json_str)
高级实例
下面我们来看一个复杂的json串,转换后如何进行遍历。
解析一个复杂的json并遍历所有元素,打印出来:
# -*- coding:utf-8 -*-
__author__ = '苦叶子'
import json
if __name__ == "__main__":
print("json串解析高级实例")
json_demo = """
{
"weixin": [
{
"name": "开源优测",
"uid": "DeepTest",
"desc": "分享开源测试技术"
},
{
"name": "开源优测_demo",
"uid": "DeepTest_demo",
"desc": "分享开源测试技术_demo"
}
],
"web": [
{
"url": "www.testingunion.com",
"name": "开源优测社区",
"desc": "分享各类开源测试技巧"
},
{
"url": "www.testingunion.com_demo",
"name": "开源优测社区_demo",
"desc": "分享各类开源测试技巧_demo"
}
]
}
"""
# 将json串转换成字典
json_dict = json.loads(json_demo)
# 遍历字典
for (k, v) in json_dict.items():
# 输出第一层级, k 为 weixin、 web; v 为 其对应的列表即 [] 中的数据
print(k, " : " , v)
for data in v:
# 遍历列表
# v 为 []
for (data_k, data_v) in data.items():
# 每个data为[]中的一个字典
# 遍历列表中的字典
print(" ",data_k, " : ", data_v)
小结
对于json的解析,简而言之,就是将其转换成字典,在python中对字典进行操作。
- PHP开发过程的那些坑(一) ——对象拷贝
- PHP开发过程的那些坑(二) ——PHP empty函数
- Thinking in SQL系列之数据挖掘Apriori关联分析再现啤酒尿布神话
- PHP开发过程的那些坑(三) ——PHParray_shift函数
- CSS3弹性盒布局
- iBatis.Net(4):DataMapper API
- PHP开发过程的那些坑(四) ——PDO bindParam函数
- iBatis.Net(3):创建SqlMapper实例
- PHP开发过程的那些坑(五) ——PHP的empty()
- iBatis.Net(2):基本概念与配置
- ASP.NET Web API中的依赖注入什么是依赖注入ASP.NET Web API依赖解析器使用Unity解析依赖配置依赖解析
- 解决Entity Framework查询匿名对象后的跨域访问的一种方式
- WebSocket在ASP.NET MVC4中的简单实现
- 在ASP.NET MVC中使用Unity进行依赖注入的三种方式第一种方法第二种方法第三种方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法