如何使用请求库重新发送 GET 请求,直到我得到所需的响应? (Python)

How to resend GET request with requests library until I get desired response? (Python)

我在一个网络项目中工作,我需要 1) 创建一个用户 2) 使用用户凭据登录。问题是在用户被添加到数据库之前有一段未指定的时间,所以我需要等待那段时间。

我想创建一个显式等待,每 n 秒发送一次 GET 请求,直到响应包含添加的用户凭据。

from time import sleep
from requests import Session

session = Session()

url = 'app_url_with_user_list_endpoint'

resp = session.get(url=url)
while resp.json()[-1]["email"] != "new_use@samplemail.fake":
     sleep(0.5)
     resp = session.get(url=url)

在这里,我尝试更新 resp 直到它包含新用户电子邮件。但是,我刚刚创建了一个无限循环。

那么,我该如何等待回复以保存所需的电子邮件?可选:如何指定最大重试次数?

以下是否有效? (限制为 10 次尝试,这里相当于超时 5 秒。)

from time import sleep
from requests import Session

session = Session()

url = 'app_url_with_user_list_endpoint'
match = "new_use@samplemail.fake"

success = False
for _ in range(10):
    resp = session.get(url=url)
    if resp.json()[-1]["email"] == match:
        success = True
        break
    sleep(0.5)

if success:
    print("Success: User was added")
else:
    print("Timeout: Failed to add user")