为了了解Json以及在python中如何处理Json数据,我在这里整理了一段全面详细的 Python 代码,演示了如何加载、处理和操作 JSON 数据。该代码包括读取 JSON 数据、查询学生信息、添加新学生、更新课程信息等操作。
示例代码
import json
# 示例 JSON 数据
data = '''
{
"students": [
{
"id": 1,
"name": "Alice Johnson",
"age": 20,
"email": "alice.johnson@example.com",
"major": "Computer Science",
"courses": [101, 102]
},
{
"id": 2,
"name": "Bob Smith",
"age": 21,
"email": "bob.smith@example.com",
"major": "Mathematics",
"courses": [101, 103]
},
{
"id": 3,
"name": "Charlie Brown",
"age": 22,
"email": "charlie.brown@example.com",
"major": "Physics",
"courses": [102, 104]
}
],
"courses": [
{
"course_id": 101,
"course_name": "Introduction to Programming",
"instructor": "Dr. Emily White",
"credits": 3
},
{
"course_id": 102,
"course_name": "Data Structures",
"instructor": "Dr. John Doe",
"credits": 3
},
{
"course_id": 103,
"course_name": "Calculus I",
"instructor": "Dr. Jane Smith",
"credits": 4
},
{
"course_id": 104,
"course_name": "General Physics",
"instructor": "Dr. Alan Turing",
"credits": 4
}
],
"registrations": [
{
"student_id": 1,
"course_id": 101,
"semester": "Fall 2023",
"grade": "A"
},
{
"student_id": 1,
"course_id": 102,
"semester": "Fall 2023",
"grade": "B"
},
{
"student_id": 2,
"course_id": 101,
"semester": "Fall 2023",
"grade": "B+"
},
{
"student_id": 2,
"course_id": 103,
"semester": "Fall 2023",
"grade": "A-"
},
{
"student_id": 3,
"course_id": 102,
"semester": "Fall 2023",
"grade": "A"
},
{
"student_id": 3,
"course_id": 104,
"semester": "Fall 2023",
"grade": "B+"
}
]
}
'''
# 解析 JSON 数据
data_dict = json.loads(data)
print(data_dict)
# 打印整个 JSON 数据
print("JSON 数据:")
print(json.dumps(data_dict, indent=4))
# 获取所有学生的信息
def get_all_students():
return data_dict['students']
# 获取特定学生的信息
def get_student_by_id(student_id):
for student in data_dict['students']:
if student['id'] == student_id:
return student
return None
# 添加新学生
def add_student(student):
data_dict['students'].append(student)
# 更新学生信息
def update_student(student_id, updated_info):
for student in data_dict['students']:
if student['id'] == student_id:
student.update(updated_info)
return True
return False
# 删除学生
def delete_student(student_id):
for student in data_dict['students']:
if student['id'] == student_id:
data_dict['students'].remove(student)
return True
return False
# 获取所有课程的信息
def get_all_courses():
return data_dict['courses']
# 获取特定课程的信息
def get_course_by_id(course_id):
for course in data_dict['courses']:
if course['course_id'] == course_id:
return course
return None
# 打印所有学生的信息
print("\n所有学生的信息:")
for student in get_all_students():
print(student)
# 打印特定学生的信息
student_id = 1
print(f"\n学生 ID 为 {student_id} 的信息:")
print(get_student_by_id(student_id))
# 添加新学生
new_student = {
"id": 4,
"name": "David Wilson",
"age": 23,
"email": "david.wilson@example.com",
"major": "Chemistry",
"courses": [103, 104]
}
add_student(new_student)
print("\n添加新学生后所有学生的信息:")
for student in get_all_students():
print(student)
# 更新学生信息
updated_info = {
"age": 24,
"email": "david.wilson24@example.com"
}
update_student(4, updated_info)
print("\n更新学生信息后 ID 为 4 的学生信息:")
print(get_student_by_id(4))
# 删除学生
delete_student(4)
print("\n删除学生后所有学生的信息:")
for student in get_all_students():
print(student)
# 打印所有课程的信息
print("\n所有课程的信息:")
for course in get_all_courses():
print(course)
# 打印特定课程的信息
course_id = 102
print(f"\n课程 ID 为 {course_id} 的课程信息:")
print(get_course_by_id(course_id))
代码说明
- 导入和解析 JSON 数据:
- 使用
json
模块导入 JSON 数据并解析为 Python 字典。
- 使用
- 基本操作函数:
get_all_students()
:获取所有学生信息。get_student_by_id(student_id)
:根据学生 ID 获取特定学生信息。add_student(student)
:添加新学生。update_student(student_id, updated_info)
:更新特定学生信息。delete_student(student_id)
:删除特定学生。get_all_courses()
:获取所有课程信息。get_course_by_id(course_id)
:根据课程 ID 获取特定课程信息。
- 演示各项操作:
- 打印所有学生信息。
- 获取并打印特定学生信息。
- 添加新学生并打印更新后的学生列表。
- 更新特定学生信息并打印更新后的学生信息。
- 删除特定学生并打印更新后的学生列表。
- 打印所有课程信息。
- 获取并打印特定课程信息。
通过这些代码示例,你可以学习如何在 Python 中加载、解析和操作 JSON 数据。这些操作包括读取、添加、更新和删除数据,涵盖了基本的 JSON 数据处理技能。