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

Python校验JSON请求体key2嵌套列表非空时触发IndexError报错的求解

问题根因

原代码未校验key2对应的列表本身是否为空,当key2存在但值为空列表时,直接访问body["key2"][0]会触发索引越界(IndexError)。

修复逻辑

利用Pythonand的短路执行特性,按风险从低到高顺序增加判断条件,避免越界访问:

  • 先判断key2是否存在于请求体
  • 再判断key2对应的列表非空
  • 最后判断列表第一个元素的长度符合要求
优化后代码
import json
import logging

body = {...}

if (
    "key2" in body
    and len(body["key2"]) > 0
    and len(body["key2"][0]) > 0
):
    logging.warning("data ok")
else:
    logging.warning("no value")
场景覆盖验证
  • 同时含key1、key2且key2为含非空字符串的列表:所有条件满足,输出data ok
  • 同时含key1、key2且key2为空列表:第二项条件不满足,直接进入else分支,输出no value,无报错
  • 仅含key1无key2:第一项条件不满足,进入else分支,输出no value

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 12:06:06