Python请求模块- API调用



我写了一个django web项目,我正在使用一些API调用。我想尝试建立一些机制来处理缓慢和失败的API调用。具体来说,我想尝试三次API调用,增加调用次数,在请求成功时打破循环。处理这个问题的好方法是什么,或者我所做的是可以接受的吗?下面是我现在的代码:

    for x in [0.5, 1, 5]: 
        try:
            r = requests.get(api_url, headers = headers, timeout=x)
            break
        except: 
            pass

您可以使用请求本身提供的异常来处理失败的Api调用。当网络出现问题时,可以使用ConnectionError exception。更多细节请参考这篇文章。我没有粘贴到请求文档的链接,并详细解释每一个例外,因为之前给出的帖子有你的问题的答案。下面给出了一个示例代码段

try:
    r = requests.get(url, params={'key': 'value'})
except requests.exceptions.ConnectionError as e:    
    print e

这概述了我正在谈论的过程。单个API请求最终可能会有点不稳定。

migrateup.com/making-unreliable-apis-reliable-with-python/#

最新更新