Python如何遍历数组所有元素 解决循环仅取首个值无限运行问题
问题根因
你的代码有两处逻辑错误直接导致异常表现:
- 外层包裹了无终止条件的
while True循环,代码运行后会无限重复执行内部逻辑,永远不会自动退出 break语句被错误放在for循环块内,第一次循环处理完数组第一个元素后就会直接跳出for循环,永远不会遍历到后续元素,之后又回到while循环的下一轮重复处理第一个元素,就出现了你说的无限循环、永远只取第一个值的问题。
修正代码
直接删除多余的外层while True循环,同时移除for循环里位置错误的break即可,遍历完listing_ids的所有元素后流程会自动结束。这里顺手优化了遍历写法,不用手动取索引更简洁,还加了基础异常处理避免单条请求失败中断整个脚本:
import requests # 此处提前配置好你的cookies、headers、listing_ids参数 for lid in listing_ids: try: resp = requests.get(f'apiurl/{lid}/pr', cookies=cookies, headers=headers) resp_json = resp.json() print(resp_json['jsonValue']) except Exception as e: print(f"处理listing_id={lid}时出错: {str(e)}")
可选优化点
- 遍历列表时优先直接迭代元素本身,不要用
range(len(列表))取索引再读值的写法,可读性更高也不容易写错 - 接口请求、JSON解析环节一定要加异常捕获,避免某条请求超时、返回非JSON格式、字段缺失直接让整个脚本崩掉
- 如果
listing_ids元素数量较多,可以在每次请求后加time.sleep(1)这类间隔逻辑,避免请求频率过高被服务端限流封禁
内容的提问来源于stack exchange,提问作者user19422024
相关产品推荐
相关产品推荐

