gpt4 book ai didi

python - 处理 ConnectionError 和状态代码错误

转载 作者:行者123 更新时间:2023-12-01 02:08:15 26 4
gpt4 key购买 nike

我正在使用 requests 从服务器获取一些数据,这是在 while 循环中完成的。然而,时不时地会出现以下两个错误之一。第一个是请求返回的status_code不等于200,这会打印出一条错误消息。第二个是引发 ConnectionError 异常。

如果我收到任一错误,我想继续尝试获取数据。但是,我不确定如何针对这两种类型的错误执行此操作。

我知道如何处理ConnectionError异常,例如:

def get_data(self, path):
# Keep trying until the connection attempt is successful
while True:
# Attempt a request
try:
request_return = requests.get(path, timeout=30)
break
# Handle a connection error
except ConnectionError as e:
pass
# Return the data
return request_return.json()

但是我怎样才能以类似的方式处理status_code呢?与 raise_for_status() 方法有关吗?

最佳答案

似乎您可以调整您的 try/except 使其看起来像这样:

try:
request_return = requests.get(path, timeout=30)
if request_return.status_code == 200:
break
except ConnectionError as e:
pass

如果您愿意,也可以使用 request_return.status_code == requests.codes.ok

如果您决定将请求作为异常处理(无论出于何种原因),raise_for_status() 将返回 HTTPError ,所以你可以像这样修改你的 try/except :

try:
request_return = requests.get(path, timeout=30)
request_return.raise_for_status()
break
except ConnectionError as e:
pass
except HTTPError as e:
pass

关于python - 处理 ConnectionError 和状态代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856896/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com