You need to enable JavaScript to run this app. Python使用while True循环每30秒调用API获取数据为何出现随机重复输出
优惠活动
大模型
产品
解决方案
定价
更多

Python使用while True循环每30秒调用API获取数据为何出现随机重复输出

带while True循环运行时出现随机重复输出的原因
  • 循环全局列表的历史值串扰
    List1、List2是在循环外定义的全局列表,持续运行循环时会不断累积所有历史拉取的数据,没有在每轮循环开始时做临时清理。单次运行时列表初始为空,仅存储当前轮次拉取的2组数据,对比输出自然顺序无重复;但进入多轮循环后,后续的对比逻辑如果遍历整个列表做计算,就会把之前已经输出过的旧值混在当前轮次的结果里,直接造成输出序列跳变、值重复。
  • 大小写变量引用错误
    循环内定义的是小写Url变量,但实际发请求时传的参数是大写的URL:Python对变量名大小写敏感,如果全局作用域下存在之前定义的URL变量,循环内的URL配置修改完全不会生效,每次请求引用的都是全局旧变量对应的地址。这种场景下请求返回旧数据的情况是随机触发的,和描述中“随机间隔出现重复输出”的现象完全匹配。
  • 网络或API层的响应缓存复用
    代码里的GET请求没有添加防缓存的标识参数,部分网络代理、API服务端会对完全相同的URL请求直接返回缓存的旧响应,不会实时拉取最新值。这种返回旧数据的行为本身是随机触发的,刚好对应“删除while True后单次运行无重复、带循环就随机出现重复值”的特征。
  • 无异常兜底的旧值保留
    整个循环没有添加请求异常捕获逻辑,一旦某次网络波动、请求超时没拿到新的有效数据,如果代码没有主动给data1、data2赋值标记无效值,程序会自动保留上一轮循环存下的旧值参与后续的对比计算,直接输出已经出现过的旧结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 13:57:04