【发布时间】:2021-02-10 13:05:40
【问题描述】:
我在尝试解码 json 时收到此错误:
simplejson.errors.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
任何帮助将不胜感激。
views.py:
from django.shortcuts import render
import requests
def home(request):
response = requests.get('https://dev-api.prime.com/api/v1/hub/login')
data = response.json()
return render (request, 'home.html', {
'email': data['email'],
'password': data['password']
})
urls.py:
path ('home/', views.home, name="home"),
home.html
{% extends 'main.html' %}
{% block content %}
<h2>API</h2>
<p>Your email is <strong>{{ email }}</strong>, and password <strong>{{ password }}</strong></p>
{% endblock %}
我尝试从终端发送 POST 请求:
http POST https://dev-api.prime.com/api/v1/hub/login email="sssdprime@gmail.com" password="asssdps"
并得到我正在寻找的响应:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 866
Content-Type: application/json; charset=UTF-8
Date: Wed, 28 Oct 2020 07:09:45 GMT
Server: nginx/1.12.2
Set-Cookie: _language=811f45dc7836f8b3da4c5d04b177501191c20a3f77a46812f864a3bca7d5d3e1a%3A2%3A%7Bi%3A0%3Bs%3A9%3A%22_language%22%3Bi%3A1%3Bs%3A2%3A%22en%22%3B%7D; path=/; HttpOnly
Set-Cookie: _csrf=5f3fb0e6b529660e0a11a97a3fd3e9a85aa3794d20; path=/; HttpOnly
Vary: Accept
X-Debug-Duration: 816
X-Debug-Link: /debug/default/view?tag=5f991938b8410
X-Debug-Tag: 5f991938b8410
X-Frame-Option: SAMEORIGIN
X-Powered-By: PHP/7.2.18
X-UA-Compatible: IE=Edge,chrome=1
X-XSS-Protection: 1
{
"data": {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MDM4Njg5ODUsImlzcyI6Imh0dHA6XC9cL2Rldi1hcGkuZGVudGFwcmltZS5jb206ODA5NCIsImF1ZCI6Imh0dHA6XC9cL2Rldi1hcGkuZGVudGFwcmltZS5jb206ODA58",
"complete": false,
"country": "AL",
"date_of_birth": null,
"email": "sssdprime@gmail.com",
"first_name": "somename",
"id": 201,
"last_name": "somename",
"phone": "08865444567",
"role": 10,
"sf_token": "0014H00002dd",
"type_language": "en",
"username": ""
},
"status": 200,
"success": true
}
【问题讨论】:
-
response = requests.get('dev-api.prime.com/api/v1/hub/login') 你确定这行代码真的返回了什么吗?
-
@Alviandoh 是的,我尝试从终端发送 post 请求,它返回正确的响应
-
请您也回复一下,这可能会有所帮助。
-
@Alviandoh 它为此用户返回正确的凭据。像电子邮件、密码、电话、访问令牌等。我不确定这有什么帮助。相当长的 json 响应。
-
我非常确定这个错误是由于 url 没有给出响应造成的。你确定 1. 你使用了正确的方法 (POST/GET) 2. URL 中没有错字吗?
标签: json django api python-3.8