python - 在 Python 中使用请求库创建请求数组
问题描述
在从另一个 API 请求中获取数组后,我正在使用请求库来映射请求数组。我正在对请求使用循环,但我确信有更好的方法可以做到这一点,因为这个 API 请求可以有 500 多个项目,所以完成这个循环有时需要 20 多分钟。
我尝试使用 grequests 库,但不断收到递归投诉。如果可能的话,我很想使用 async/map 方法,但经过研究,显然不再支持异步库。
self.set_header("Access-Control-Allow-Origin", "*")
response = requests.get("https://hacker-news.firebaseio.com/v0/paststories.json?print=pretty")
data = response.json()
story_list = []
for story in data:
temp_string = "https://hacker-news.firebaseio.com/v0/item/{}.json?print=pretty".format(story)
story_data = requests.get(temp_string)
story_list.append(story_data.json())
应该有比当前方法更好的方法来执行此循环,因为 20 分钟以上的时间来获取数据是不可接受的。原始数组中的 API 响应可以返回一个 500+ 的数组,因此该方法应该是可扩展的。
解决方案
requests 是同步的,因此您的脚本会等待响应以发出新请求。所以也许你应该研究 aiohttp 和 aysnchronous 请求。
这可能是一个例子:该基准是否可靠 - aiohttp vs requests
推荐阅读
- angular - 将两个小数位添加到数字 TypeScript Angular
- c# - C# revit api 在 Revit 中创建面板
- sql - 用 2 个表 SQL 分组
- encryption - Elixir 中的 JWS 令牌生成
- ios - 将视频播放大小调整为 UIView 大小
- c# - 页面加载时如何将 asp.net 网格视图代码与网格视图一起加载?
- javascript - react-table 中的条件单元格渲染
- node.js - 基于 Node.js 的命令行工具“force-dev-tool”在退出之前需要大量时间
- mysql - 如何检查列中的值并使用 sql 在表上删除/继续读取(选择)?
- c# - 嵌套类属性