Python JSON操作

在Python中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它为数据存储和传输提供了简单的语法,使其易于阅读和编写。Python中有一个内置的json模块,可以用来处理JSON数据。
什么是JSON?
JSON是一种文本格式,用于将结构化数据序列化为字符串,并在各种应用程序之间进行交换。它采用键值对的形式表示数据,并使用一组规则定义数据的结构。
JSON数据通常具有以下特点:
- 以大括号
{}表示开始和结束 - 使用冒号
:分隔键和值 - 键值对之间使用逗号
,分隔 - 可以包含数组和嵌套对象
- 可以表示字符串、数字、布尔值和null值
下面是一个简单的JSON示例:
{
"name": "Alice",
"age": 30,
"is_student": true,
"favorites": ["Python", "Data Science"]
}
Python中的JSON模块
Python的json模块提供了一组函数,用于解析和生成JSON数据。你可以使用该模块将Python对象转换为JSON字符串,或者将JSON字符串转换为Python对象。
JSON字符串解析为Python对象
使用json.loads()函数可以将JSON字符串解析为Python对象。例如:
import json
json_str = '{"name": "Bob", "age": 25, "is_student": false, "grades": [85, 90, 75]}'
data = json.loads(json_str)
print(data)
运行上面的代码将输出以下结果:
{'name': 'Bob', 'age': 25, 'is_student': False, 'grades': [85, 90, 75]}
Python对象转换为JSON字符串
使用json.dumps()函数可以将Python对象转换为JSON字符串。例如:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": True,
"favorites": ["Python", "Data Science"]
}
json_str = json.dumps(data)
print(json_str)
运行上面的代码将输出以下结果:
{"name": "Alice", "age": 30, "is_student": true, "favorites": ["Python", "Data Science"]}
读写JSON文件
你还可以使用json模块来读写JSON文件。下面是一个示例:
import json
# 写入JSON文件
data = {
"name": "Alice",
"age": 30,
"is_student": True,
"favorites": ["Python", "Data Science"]
}
with open("data.json", "w") as f:
json.dump(data, f)
# 读取JSON文件
with open("data.json", "r") as f:
data = json.load(f)
print(data)
运行上面的代码将输出以下结果:
{'name': 'Alice', 'age': 30, 'is_student': True, 'favorites': ['Python', 'Data Science']}
JSON数据处理
在处理JSON数据时,你可能会遇到一些常见操作,比如访问和修改数据,过滤数据等。
访问和修改数据
要访问和修改JSON数据中的值,你可以使用键名。例如:
data = {
"name": "Alice",
"age": 30,
"is_student": True,
"favorites": ["Python", "Data Science"]
}
# 访问数据
print(data["name"])
print(data["age"])
print(data["favorites"][0])
# 修改数据
data["age"] = 31
data["favorites"].append("Machine Learning")
print(data)
上面的代码将输出以下结果:
Alice
30
Python
{'name': 'Alice', 'age': 31, 'is_student': True, 'favorites': ['Python', 'Data Science', 'Machine Learning']}
过滤数据
你也可以对JSON数据进行过滤操作,只选择符合条件的数据。例如,筛选出年龄大于30岁的人:
data = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 35}
]
filtered_data = [d for d in data if d["age"] > 30]
print(filtered_data)
上面的代码将输出以下结果:
[{'name': 'Charlie', 'age': 35}]
总结
本文介绍了在Python中进行JSON操作的基础知识和常见操作。你可以使用json模块轻松处理JSON数据,包括解析和生成JSON字符串,读写JSON文件,访问和修改数据,以及过滤数据。
极客教程