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

Python遍历嵌套JSON如何通过for循环为内层元素新增指定字段?

问题原因

  • 内层循环未使用索引计数,每个item初始都被赋值positionId=1
  • positionId自增逻辑写在了内层循环外,仅对最后一个遍历到的item生效

实现方案

直接通过enumerate遍历item数组获取从1开始的索引,同时完成positionId和score的赋值,修正后的代码如下:

def post(self) -> Response:
    data = request.get_json()
    for sublist in data['sublist']:
        # 遍历item时获取从1开始的索引
        for idx, item in enumerate(sublist['item'], start=1):
            # 仅当positionId不存在时赋值,避免覆盖前端传入的值
            if 'positionId' not in item:
                item['positionId'] = idx
            # 按规则赋值score
            if idx == 1:
                item['score'] = 3
            elif idx == 2:
                item['score'] = 2
            else:
                item['score'] = 1
    post_list = Lists(**data).save()
    output = {'id': str(post_list.id)}
    return jsonify({'result': output})

效果验证

处理后的item数组会符合预期:

  • 第一个item的positionId=1,score=3
  • 第二个item的positionId=2,score=2
  • 第三个及之后的item的positionId按顺序递增,score固定为1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:45:01