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

如何访问字典列表内嵌套的dict值并解决空marks数组导致数据遗漏问题

实现方案

原代码存在的问题

  • 语法错误:for student in response 语句末尾缺少英文冒号
  • 逻辑错误:内层循环遍历对象错误,应该遍历student['marks']而非student本身
  • 核心缺陷:当marks数组为空时,内层循环不会执行,导致无成绩的学生完全不会被加入结果列表

优化后实现代码

response = response.json()
new_list = []
students = response['students']
for student in students:
    # 先构造学生基础信息,保证每个学生都一定会被加入列表
    temp = {
        "student_reference_id": student['student_reference_id'],
        "name": student['name'],
        "birth_year": student['birth_year'],
        "gender": student['gender'],
        # 分数字段默认设为空值,可按需修改为0、空字符串等其他默认值
        "science": None,
        "physics": None
    }
    # 仅当存在成绩时更新分数字段
    if student['marks']:
        # 取marks数组第一条成绩记录,若需处理多份成绩可在此处加循环遍历
        mark = student['marks'][0]
        temp['science'] = mark.get('science')
        temp['physics'] = mark.get('physics')
    new_list.append(temp)

逻辑说明

  • 优先构造学生基础信息,确保无论是否有考试成绩,所有学生都会被收录到结果列表中
  • 用get方法读取分数字段,避免对应字段缺失时程序报错
  • 如果单个学生可能存在多条成绩记录,把if student['marks']替换为遍历marks数组的循环即可生成多条对应成绩的记录

内容的提问来源于stack exchange,提问作者user16043464

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 03:24:09