python - 在特定时间后停止从 API 中提取数据
问题描述
我正在使用 python v3 从流 API 中提取一些数据,我需要在 60 秒后停止提取这些数据。此外,如果有人对 chunk_size 或其他流媒体替代方案有建议,我会对此持开放态度。到目前为止,这就是我所拥有的:
response = requests.get('link to site', stream=True)
for data in response.iter_content(chunk_size=100):
print(data)
解决方案
猜测多于答案,但您可以设置一个计时器,然后关闭响应。这可能会做到,但我没有一个很好的方法来测试它。我不知道响应关闭时会出现哪个异常,因此我将它们全部捕获并打印,以便可以更改代码。
import threading
response = requests.get('link to site', stream=True)
timer = threading.Timer(60, response.close)
try:
timer.start()
for data in response.iter_content(chunk_size=100):
print(data)
except Exception as e:
print("you want to catch this", e)
finally:
timer.cancel()
推荐阅读
- ocaml - OCaml 如何知道 = in apply_n fnx = ... 是赋值,而 = in n = 0 是比较?
- node.js - 当 MongoDB 中的日期过期时,有没有办法更新文档?
- c++ - 计算多个算术表达式
- python - 如何使用矢量化方法计算多维数组之间的成对曼哈顿/L1 距离?
- c++ - 为什么这两个 char 数组不相等?
- java - JSR-303 bean 验证 - 避免绕过字段
- c - 动态数组大小调整混淆双重免费或损坏错误
- c# - 为一个给定的键迭代字典中的列表
- python-3.x - 寻找玩游戏的策略
- angular - 如何以不同的指定时间显示不同的组件?