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

嵌套JSON遍历获取指定type对应全部review值的代码修正问题

问题修复方案

错误原因

你的代码问题出在循环体内直接执行return i,第一次遍历到review数组的第一个元素时就会终止函数执行,自然只能拿到第一条数据。同时注意type是Python内置关键字,不建议用作变量名,容易引发意料之外的错误。

修正代码

方案1:直接返回完整review数组(无额外处理需求时使用)

def get_object(self):
    number = self.kwargs['number']
    exam_type = self.kwargs['type']
    obj = get_object_or_404(self.queryset.filter(number=number))
    # 筛选符合类型要求的考试记录,没匹配到则返回None
    target_exam = next(filter(lambda x: x["type"] == exam_type, obj.exams), None)
    # 没找到对应类型的记录时,可根据业务需求调整返回值或者抛出404
    if not target_exam:
        return []
    # 直接返回完整的review数组即可拿到全部数据
    return target_exam['review']

方案2:需要对每条review做自定义处理时使用

def get_object(self):
    number = self.kwargs['number']
    exam_type = self.kwargs['type']
    obj = get_object_or_404(self.queryset.filter(number=number))
    target_exam = next(filter(lambda x: x["type"] == exam_type, obj.exams), None)
    res = []
    if target_exam:
        for item in target_exam['review']:
            # 此处可添加你需要的业务处理逻辑
            res.append(item)
    return res

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:15:00