Python Flask报cannot unpack non-iterable int object错误问题求助
错误原因
- 你构造的
my_list存储的是单个整数值,执行my_list.append(int(str_input))后,my_list的实际内容为[5],所有元素都是不可迭代的整数类型 - 你写的代码中
v for k, v in my_list语法会尝试把my_list的每个元素拆成k、v两个变量,要求每个元素必须是包含至少2个值的可迭代对象(比如二元组),单个整数无法完成双变量解包,因此触发报错。
修复方案
分两种场景选择对应修复方式:
- 如果你只是要筛选
my_list里落在check_values范围内的元素,去重后转列表,修改代码为:
testing = list(set(v for v in my_list if v in check_values)) # 更简洁的等价写法 testing = list(set(my_list) & set(check_values))
- 如果你原本就希望
my_list存储键值对结构的元素,那你之前的元素添加逻辑有误,需要修改为添加二元组的写法:
# 示例:第一个元素存原始字符串作为k,第二个存转后整数作为v my_list.append( (str_input, int(str_input)) )
修正元素结构后,你原来的测试代码即可正常运行。
内容的提问来源于stack exchange,提问作者cdub
相关产品推荐
相关产品推荐

