Python HTTPX库的.json()方法可能抛出哪些异常?
捕获HTTPX .json()方法的异常类型
HTTPX的.json()方法在处理响应时,主要会抛出以下几类异常,你可以针对性捕获:
json.JSONDecodeError:当响应内容不是合法的JSON格式时触发,这是最常见的场景,对应标准库json.loads()解码失败的情况。UnicodeDecodeError:如果响应体的字节内容无法被正确解码为字符串(比如响应编码与预期不符),在将响应字节转换为字符串的过程中会抛出这个异常。httpx.ResponseNotRead:若响应处于未读取状态(比如使用流式请求但未提前读取响应体),调用.json()时会触发该异常。
你可以将代码修改为:
import json import httpx try: return response.json() except (json.JSONDecodeError, UnicodeDecodeError, httpx.ResponseNotRead) as e: print('This is not the JSON you are looking for')
如果需要更宽泛的异常捕获(覆盖所有HTTPX相关的请求/响应异常),也可以考虑捕获httpx.HTTPError的子类,但上述三个是.json()方法特有的高频触发异常。
内容的提问来源于stack exchange,提问作者mhucka
相关产品推荐
相关产品推荐

