如何在Python中使用索引访问这类嵌套JSON数据?
问题根源与解决方法
核心问题是你搞混了Python数据对象和JSON字符串的区别:
grades = json.load(example_file)得到的是Python原生的嵌套列表+字典结构,支持索引、键访问和计算formatted_grades = json.dumps(grades, indent=4)是把Python对象转成了格式化的文本字符串,只能用来打印或保存,不能直接做数据访问和计算
正确的取值方式
根据你给出的数据结构:
# 数据结构示意 grades = [ [{'key': val, 'key': val, ...}], # grades[0] [{'key': val, ...}, {'key': val, ...}] # grades[1] ]
你可以这样访问单个值:
- 取第一个子列表里的唯一字典的某个键:
grades[0][0]['目标键名'] - 取第二个子列表里的第二个字典的某个键:
grades[1][1]['目标键名']
计算平均分示例
假设每个字典里有exam_score字段记录考试分数,计算所有分数的平均分:
total_score = 0 count = 0 # 遍历外层列表的每个子列表 for sub_list in grades: # 遍历子列表里的每个学生字典 for student in sub_list: # 取出分数并累加(注意要确保键名正确,且值是数字类型) score = student.get('exam_score', 0) total_score += score count += 1 if count > 0: average_score = total_score / count print(f"考试平均分:{average_score:.2f}") else: print("没有可计算的分数数据")
额外提醒
如果需要查看格式化后的结构,再用print(formatted_grades);但所有数据操作(取值、计算)都要基于grades这个Python原生对象。
内容的提问来源于stack exchange,提问作者Smyinc
相关产品推荐
相关产品推荐

