为何这段Python代码会抛出‘list index out of range’错误?
排查"list index out of range"错误的建议
你贴的这段代码里,现有的any(...)判断逻辑和img的空值检查,都不会触发列表索引越界错误。问题肯定出在代码里没明确展示的部分,给你几个具体排查方向:
- 检查
form_data_values的类型和取值:如果它是列表而不是字典,那form_data_values[f'{question}']这种赋值方式本身就有问题——列表只能用整数索引,要是question解析后是个超出列表长度的整数,直接就会报索引越界。如果它是字典,那大概率是form_data本身是列表,且在赋值前有对它做索引操作(比如你没贴的代码里写了form_data[x],x超出了它的长度)。 - 确认
question的实际值:如果question是整数类型,且form_data_values是列表,当question的数值≥len(form_data_values)时,赋值操作必然触发索引越界。 - 加个完整错误栈追踪:把except块改成下面这样,能直接看到错误发生的具体行和调用链,精准定位问题:
import traceback except Exception as e: print(e) traceback.print_exc() - 单独验证赋值行:把
form_data_values[f'{question}'] = form_data这行单独拿出来在try块外执行,看是不是这行直接触发的错误,快速缩小排查范围。
内容的提问来源于stack exchange,提问作者Hamza Elamri
相关产品推荐
相关产品推荐

