簡體   English   中英

Python請求循環,如果狀態碼不是200,則重試

[英]Python request loop, retry if status code not 200

我做了一個請求循環,不幸的是有時會發生服務器超時。 這就是為什么我要首先檢查狀態代碼,如果不是200的原因,我想返回並重復上一個請求,直到狀態代碼為200。代碼示例如下所示:

for i in range(0, len(table)):
        var = table.iloc[i]
        url = 'http://example.request.com/var/'
        response = requests.get(url)
        if response.status_code == 200:
            data = response.json()
        else:
            "go back to response"

我將附加每個i的響應數據,因此我想返回,只要響應代碼為200,然后繼續循環中的下一個i。 有什么簡單的解決方案嗎?

我相信您想做這樣的事情:

for i in range(0, len(table)):
        var = table.iloc[i]
        url = 'http://example.request.com/var/'
        response = requests.get(url)
        while response.status_code != 200:
            response = requests.get(url)     
        data = response.json()

我舉了一個小例子,使用無限循環並使用break來演示狀態代碼何時= 200

while True:
    url = 'https://stackoverflow.com/'

    response = requests.get(url)

    if response.status_code == 200:
        # found code
        print('found exemple')
        break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM