从FakerAPI获取JSON后,遍历整数列表遇TypeError问题咨询
问题分析:
TypeError: argument of type 'int' is not iterable 报错原因 核心原因
你认定categories是整数列表,但实际它是单个整数。
in运算符的作用是检查元素是否存在于可迭代对象(比如列表、元组、字符串等)中。当你把in用在整数上时,Python会尝试迭代这个整数——但整数属于不可迭代类型,因此直接抛出TypeError。
而categories == 3能正常运行,是因为此时categories是单个整数,直接做相等比较是合法的整数运算,不会触发迭代操作。
可能的场景
- API返回数据结构不一致:你调用的API可能对部分产品返回的
categories是单个整数,而非列表。比如有的产品categories字段是[1,3,5],有的则直接是3,导致循环到这类产品时categories变成了int类型。 - 数据提取错误:你在提取
categories时,误取了列表中的单个元素,而非整个列表。比如本来应该取product['categories'],却写成了product['categories'][0],导致categories变成了单个整数。
验证方法
在报错代码前添加打印语句,确认categories的类型和值:
print(type(categories), categories)
运行后就能直观看到它到底是列表还是单个整数。
内容的提问来源于stack exchange,提问作者Jay Leblanc
相关产品推荐
相关产品推荐

