使用Python中的请求库生成请求数组

2024-06-17 15:53:02 发布

您现在位置:Python中文网/ 问答频道 /正文

在从另一个API请求获得一个数组之后,我使用requests库映射一个请求数组。我正在为请求使用一个循环,但是我确信有更好的方法来实现这一点,因为这个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+的数组,因此该方法应该是可伸缩的。你知道吗


Tags: 方法httpscomapijsondatagetresponse
2条回答

好吧,您只需要提高io绑定代码的速度,解决方案中有音调,请参考stackoverflow中的相关答案:How could I use requests in asyncio?

由于asyncio太基本了,有很多基于它构建的包,请尝试以下包:aiohttp requests

希望这些信息能有所帮助。你知道吗

请求是同步的,因此脚本等待响应以发出新请求。 所以也许你应该调查一下所有的临时请求。你知道吗

例如:Is that benchmark reliable - aiohttp vs requests

相关问题 更多 >