AttributeError: module 'requests.exceptions' has no attribute 'JSONDecodeError'
时间: 2023-06-23 08:43:12 浏览: 956
这个错误通常是因为你的代码中使用了已经过时的 JSONDecodeError 异常。在 Python 3.5 版本之前,JSONDecodeError 异常是在 requests.exceptions 模块中定义的。但是在 Python 3.5 版本以后,JSONDecodeError 异常被移到了 json 模块中。
要解决这个问题,你可以尝试以下两种方法之一:
1. 如果你使用的是 Python 3.5 版本或更高版本,你可以将代码中所有的 requests.exceptions.JSONDecodeError 改成 json.JSONDecodeError。
2. 如果你使用的是 Python 3.5 版本之前的版本,你可以将代码中所有的 requests.exceptions.JSONDecodeError 改成 simplejson.JSONDecodeError。如果你的代码中没有导入 simplejson 模块,你需要先安装它,可以使用以下命令安装:
```
pip install simplejson
```
希望这可以帮助你解决问题!
相关问题
except (requests.exceptions.JSONDecodeError, json.decoder.JSONDecodeError): 报错: AttributeError: module 'requests.exceptions' has no attribute 'JSONDecodeError'
这个错误是因为 requests.exceptions 模块中没有 JSONDecodeError 这个属性。在新版本的 requests 库中,JSONDecodeError 被移动到了 json.decoder 模块中。因此,你需要更新你的代码,将 requests.exceptions.JSONDecodeError 改为 json.decoder.JSONDecodeError。
正确的代码应该是:
```
import json
import requests
try:
# your code here
except (json.decoder.JSONDecodeError, requests.exceptions.RequestException):
# handle exceptions
```
E AttributeError: module 'requests.exceptions' has no attribute 'JSONDecodeError'
这个错误通常是因为你使用的是较旧版本的 requests 库,而 JSONDecodeError 是较新版本的 requests 库中的一个新特性。你可以尝试更新你的 requests 库,或者手动导入 JSONDecodeError,例如:
```python
import json
from requests.exceptions import RequestException
class JSONDecodeError(RequestException):
"""Subclass of RequestException with a more specific message."""
def __init__(self, *args: Any, **kwargs: Any) -> None:
if args or kwargs:
super().__init__(*args, **kwargs)
self.msg = "Failed to decode JSON response"
self.doc = (
"https://docs.python.org/3/library/json.html#json.JSONDecodeError"
)
try:
self.content = json.loads(self.response.content.decode("utf-8"))
except (ValueError, TypeError):
self.content = None
super().__init__(self.msg, self.response)
```
阅读全文