Python3中对json格式数据的分析处理

1.引言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人们阅读和编写。我们在日常编程中会用到很多Json格式的数据,因此对Json格式数据的处理变得非常重要。Python3自带了Json模块,可以对Json格式的数据进行分析和处理。

2.Json模块介绍

2.1.什么是Json模块

Json模块是Python内置的一个用于操作Json数据的模块,可以方便地将Json格式的文本转换成Python对象,也可以将Python对象转换成Json格式的文本。Json模块同时也提供了一些方法用于对Json格式的数据进行解析和编码。

2.2.Json模块的应用

在Python开发中,Json模块是处理Json数据非常重要的一部分,主要应用在以下几个方面:

解析Json格式的数据

将Python对象转换成Json格式的数据

将Json格式的数据转换成Python对象

3.Json模块的使用

3.1.解析Json格式的数据

解析Json格式的数据,就是将Json格式的数据转换成Python对象。Json格式的数据可以是存储在文件中的,也可以是通过网络传输的字符串。Json模块提供了loads()函数用于将Json格式的字符串转换成Python对象。

3.1.1.loads()函数

loads()函数主要用于将Json格式的字符串转换成Python对象。

import json

#Json格式的字符串

json_str = '{"name":"Tom","age":18,"sex":"male"}'

#将Json格式的字符串转换成Python对象

data = json.loads(json_str)

#打印Python对象类型

print(type(data))

#打印Python对象

print(data)

运行结果如下所示:

<class 'dict'>

{'name': 'Tom', 'age': 18, 'sex': 'male'}

可以看到,Json格式的字符串已经被成功转换成了Python的字典类型。

3.1.2.load()函数

load()函数主要用于从文件中读取Json格式的数据,并将其转换成Python对象。

import json

#从文件中读取Json格式的数据

with open('data.json', 'r') as f:

data = json.load(f)

#打印Python对象类型

print(type(data))

#打印Python对象

print(data)

运行结果如下所示:

<class 'dict'>

{'name': 'Tom', 'age': 18, 'sex': 'male'}

可以看到,打开文件,并使用Json模块的load()函数读取文件中的Json格式数据并将其转换成Python的字典类型。

3.2.将Python对象转换成Json格式的数据

将Python对象转换成Json格式的数据,就是将Python中的数据类型转换成Json格式的字符串。Json模块提供了dumps()函数用于将Python对象转换成Json格式的字符串。

3.2.1.dumps()函数

dumps()函数主要用于将Python对象转换成Json格式的字符串。

import json

#Python中的字典类型

data = {'name': 'Tom', 'age': 18, 'sex': 'male'}

#将Python对象转换成Json格式的字符串

json_str = json.dumps(data)

#打印Json格式的字符串类型

print(type(json_str))

#打印Json格式的字符串

print(json_str)

运行结果如下所示:

<class 'str'>

{"name": "Tom", "age": 18, "sex": "male"}

可以看到,Python中的字典类型已经被成功转换成了Json格式的字符串。

3.2.2.dump()函数

dump()函数主要用于将Python对象转换成Json格式的字符串,并将其保存在文件中。

import json

#Python中的字典类型

data = {'name': 'Tom', 'age': 18, 'sex': 'male'}

#将Python对象转换成Json格式的字符串,并保存在文件中

with open('data.json', 'w') as f:

json.dump(data, f)

运行结果如下所示:

{"name": "Tom", "age": 18, "sex": "male"}

可以看到,Python中的字典类型已经被成功转换成了Json格式的字符串,并保存在文件中。

3.3.将Json格式的数据转换成Python对象

将Json格式的数据转换成Python对象,就是将Json格式的字符串转换成Python的数据类型。Json模块提供了loads()函数用于将Json格式的字符串转换成Python对象。

3.3.1.loads()函数

loads()函数主要用于将Json格式的字符串转换成Python对象。

import json

#Json格式的字符串

json_str = '{"name":"Tom","age":18,"sex":"male"}'

#将Json格式的字符串转换成Python对象

data = json.loads(json_str)

#打印Python对象类型

print(type(data))

#打印Python对象

print(data)

运行结果如下所示:

<class 'dict'>

{'name': 'Tom', 'age': 18, 'sex': 'male'}

可以看到,Json格式的字符串已经被成功转换成了Python的字典类型。

3.3.2.load()函数

load()函数主要用于从文件中读取Json格式的数据,并将其转换成Python对象。

import json

#从文件中读取Json格式的数据,并将其转换成Python对象

with open('data.json', 'r') as f:

data = json.load(f)

#打印Python对象类型

print(type(data))

#打印Python对象

print(data)

运行结果如下所示:

<class 'dict'>

{'name': 'Tom', 'age': 18, 'sex': 'male'}

可以看到,打开文件,并使用Json模块的load()函数读取文件中的Json格式数据并将其转换成Python的字典类型。

4.使用Json模块处理Json格式数据

4.1.解析Json格式数据

Json模块的loads()函数可以用来解析Json格式的数据。接下来以某个网站查询天气的API为例子来进行介绍。

查询数据接口:https://www.apiopen.top/weatherApi?city=北京

将API返回的Json数据解析成Python的字典类型:

import json

import urllib.request

url = 'https://www.apiopen.top/weatherApi?city=北京'

try:

#请求API接口

response = urllib.request.urlopen(url)

#读取API返回的Json数据

json_str = response.read()

#将Json数据解析成Python的字典数据类型

data = json.loads(json_str)

#打印结果

print(data)

except Exception as e:

print(e)

运行结果如下所示:

{'code': 200, 'msg': '成功!', 'data': {'yesterday': {'date': '12日星期六', 'high': '高温 15℃', 'fx': '无持续风向', 'low': '低温 2℃', 'fl': '', 'type': '晴'}, 'city': '北京', 'forecast': [{'date': '13日星期天', 'high': '高温 13℃', 'fengli': '

Json格式的数据已经成功解析为Python的字典数据类型。

4.2.将Python对象转换成Json格式的数据

Json模块的dumps()函数可以将Python对象转换成Json格式的字符串。下面以Python字典类型举例来说明如何将Python对象转换成Json格式的数据:

import json

data = {'name': 'Tom', 'age': 18, 'sex': 'male'}

#将Python对象转换成Json格式的数据

json_str = json.dumps(data)

#打印Json格式的数据

print(json_str)

运行结果如下所示:

{"name": "Tom", "age": 18, "sex": "male"}

4.3.将Json格式的数据转换成Python对象

Json模块的loads()函数可以将Json格式的字符串转换成Python对象。下面以将Json格式的字符串转换成Python的字典类型为例。

import json

json_str = '{"name":"Tom","age":18,"sex":"male"}'

#将Json格式的数据转换成Python对象

data = json.loads(json_str)

#打印Python对象的类型

print(type(data))

#打印Python对象的值

print(data)

运行结果如下所示:

<class 'dict'>

{'name': 'Tom', 'age': 18, 'sex': 'male'}

5.总结

Json格式数据在Python开发中是非常常见的数据格式,Python3自带的Json模块可以方便的操作和处理Json格式的数据。Json模块的loads()函数和dumps()函数可以分别将Json格式的字符串转换成Python对象和将Python对象转换成Json格式的数据,并且Json模块还提供了load()和dump()函数用于读取和保存Json格式的数据。通过对Json模块的学习和实践,可以更加高效地处理Json格式数据。

后端开发标签