You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:04:53