我正在使用 JSON 从 API 获取一些数据,如果输入的 URL 错误(很可能)JSON 文件返回:“未知符号”
错误信息如下:(不要害怕很多它只是相关信息,向下滚动到底部我已经突出了主要错误。)
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/buy/
Django Version: 3.1.2
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
During handling of the above exception (0), another exception occurred:
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "C:\Users\VARDHAN\Desktop\python websites\trading_website\accounts\views.py", line 116, in buy
json_data = requests.get(url).json()
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\models.py", line 900, in json
return complexjson.loads(self.text, **kwargs)
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\VARDHAN\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
**Exception Type: JSONDecodeError at /buy/
Exception Value: Expecting value: line 1 column 1 (char 0)**
我试过的修复:
try:
....
except JSONDecodeError:
messages.error(request, "The is ticker is either wrong or not supported. Please try another one :)")
return redirect ("buy")