字典错误更新序列长度 - django

时间:2017-08-31 01:13:37

标签: python json django

我收到以下错误。

所以我有一个django项目,我正在尝试发送api调用并在html模板中打印出api调用的响应。当我发送请求时,在终端内,它打印一个响应200,这意味着请求是好的。然后我将响应传递到模板中以显示收集的repsonse。有谁知道如何正确地将json响应显示到html文件中。

我很确定这个问题来自我所得到的回应并试图传递并显示为文本

JSONDecodeError at /signup
Expecting value: line 1 column 1 (char 0)
Request Method: POST
Request URL:    http://127.0.0.1:8000/signup
Django Version: 1.8.6
Exception Type: JSONDecodeError
Exception Value:    
Expecting value: line 1 column 1 (char 0)
Exception Location: C:\Users\OmarJandali\AppData\Local\Programs\Python\Python36\lib\site-packages\simplejson\scanner.py in _scan_once, line 118
Python Executable:  C:\Users\OmarJandali\AppData\Local\Programs\Python\Python36\python.exe
Python Version: 3.6.1
Python Path:    
['C:\\Users\\OmarJandali\\Desktop\\opentab\\opentab',
 'C:\\Users\\OmarJandali\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip',
 'C:\\Users\\OmarJandali\\AppData\\Local\\Programs\\Python\\Python36\\DLLs',
 'C:\\Users\\OmarJandali\\AppData\\Local\\Programs\\Python\\Python36\\lib',
 'C:\\Users\\OmarJandali\\AppData\\Local\\Programs\\Python\\Python36',
 'C:\\Users\\OmarJandali\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages']
Server time:    Thu, 31 Aug 2017 01:23:09 +0000

我将附加我的视图和html模板,我现在在html文件中显示json响应......

这是views.py

 def createUserSynapse(request):
    url = 'http://uat-api.synapsefi.com'
    headers = {
        'X-SP-GATEWAY' : 'client_id_asdfeavea561va9685e1gre5ara|client_secret_4651av5sa1edgvawegv1a6we1v5a6s51gv',
        'X-SP-USER-IP' : '127.0.0.1',
        'X-SP-USER' : 'ge85a41v8e16v1a618gea164g65',
        'Contant-Type' : 'application/json',
    }
    payload = {
        "logins":[
            {
                "email":"test@test.com",
            }
        ],
        "phone_numbers":[
            "123.456.7890",
            "test@test.com",
        ],
        "legal_names":[
            "Test name",
        ],
        "extras":{
            "supp_id":"asdfe515641e56wg",
            "cip_tag":12,
            "is_business":False,
        }
    }
    print(url)
    print(headers)
    print(payload)
    call = requests.post(url, data=json.dumps(payload), headers=headers)
    response = json.loads(call.text)
    print(call)
    return render(request, 'tabs/create_user_synapse.html', response)

这是模板......

{% extends "base.html" %}

{% block content %}
    <h1>Synapse API Call</h1>
    <p>{{ message }}</p>
    <p>{{call}}</p>
    <p><a href="{% url 'home_page' %}">Home</a></p>
{% endblock %}

1 个答案:

答案 0 :(得分:0)

你应该在.json的响应中调用JSON(获取返回的requests的字典表示)然后将其传递给{{1}中的模板} 方法。而不是直接传递它。

这样的事情:

render