1. 简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写。在Python中,我们使用json模块来处理JSON格式数据。
2. JSON基础
2.1 JSON语法
JSON格式采用键值对的方式表示数据,每个数据之间用逗号分隔。键值对使用冒号链接,整个数据使用大括号括起来:
{
"name": "Alice",
"age": 20,
"gender": "female"
}
JSON格式还支持数组,多个数据按照顺序放入一个方括号中,数组中的数据使用逗号分隔:
[
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
2.2 Python类型和JSON类型的对应关系
在Python中,有着对应于JSON格式中数据类型的类型。具体的对应关系如下:
Python类型 | JSON类型 |
---|---|
dict | Object |
list、tuple | Array |
str | String |
int、float、bool | Number |
None | null |
3. json模块的使用
3.1 json模块常用函数介绍
Python自带的json模块中提供了一些常用的函数用于JSON数据的处理,比如:
json.loads(s):将JSON格式的字符串s转换为Python对象。
json.dumps(obj):将Python对象obj转换为JSON格式的字符串。
json.load(fp):从已打开的文件fp中读取JSON格式的数据,返回Python对象。
json.dump(obj, fp):将Python对象obj转换为JSON格式的数据,并写入已打开的文件fp中。
3.2 json字符串转为Python对象
使用json.loads()函数可以将JSON格式的字符串转换为Python对象,下面是一个示例:
import json
data = '{"name": "Alice", "age": 20, "gender": "female"}'
json_obj = json.loads(data)
print(type(json_obj))
print(json_obj)
运行结果为:
<class 'dict'>
{'name': 'Alice', 'age': 20, 'gender': 'female'}
同样的,在处理JSON格式的数组时,使用json.loads()函数同样可以将JSON格式的字符串转换为Python对象:
import json
data = '["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]'
json_obj = json.loads(data)
print(type(json_obj))
print(json_obj)
运行结果为:
<class 'list'>
['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
3.3 Python对象转为json字符串
使用json.dumps()函数可以将Python对象转换为JSON格式的字符串,下面是一个示例:
import json
data = {
"name": "Alice",
"age": 20,
"gender": "female"
}
json_str = json.dumps(data)
print(type(json_str))
print(json_str)
运行结果为:
<class 'str'>
{"name": "Alice", "age": 20, "gender": "female"}
同样的,在处理Python列表时,使用json.dumps()函数同样可以将Python对象转换为JSON格式的字符串:
import json
data = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
json_str = json.dumps(data)
print(type(json_str))
print(json_str)
运行结果为:
<class 'str'>
["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
4. 在读写文件时的应用
上面提到的json.load()和json.dump()函数可以在读取和写入文件时非常方便地处理JSON格式数据。
在读取文件时,可以使用json.load()函数将文件中的JSON格式数据直接转换为Python对象,下面是一个示例:
import json
with open("data.json", "r") as f:
data = json.load(f)
print(data)
同样地,在写入文件时,可以使用json.dump()函数将Python对象转换为JSON格式数据,并将其写入文件,下面是一个示例:
import json
data = {
"name": "Alice",
"age": 20,
"gender": "female"
}
with open("data.json", "w") as f:
json.dump(data, f)
5. 总结
在Python中,使用json模块可以方便地处理JSON格式数据,包括JSON字符串与Python对象的转换、JSON格式数据的读取与写入等。掌握json模块的使用对于处理JSON格式数据具有非常重要的作用。