【问题标题】:Viewing and parsing JSON response - django查看和解析 JSON 响应 - django
【发布时间】:2017-08-30 21:32:29
【问题描述】:

我已经发送了一个 JSON 请求。我收到 200 响应,这意味着发送的请求已被接受并且有响应。我正在尝试查看从请求发回的完整响应。我已经尝试了 3-4 种不同的方式来查看回复,但无论我尝试什么,我都无法弄清楚如何查看完整的回复...谁能帮我弄清楚如何查看信息..

请求 -

def createUserSynapse():
    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)
    print(call)
    return call

我从请求中得到的响应(我有一行打印请求)...

<Response [200]>

【问题讨论】:

  • 从您的端点返回的响应的内容类型是什么?
  • 你试过print(call.content) 吗?
  • 最好修正行: call = requests.post(url, data=json.dumps(payload), headers=headers) print(call) to call = requests.post(url, json =payload, headers=headers) 打印(call.json())

标签: python json django


【解决方案1】:

尝试将call 更改为

call.text

JSON 试试

json.loads(call.text)

打印

print(json.loads(call.text))

【讨论】:

  • call.json() 在适当的 try/except 块中会更好。见doc
  • 当我尝试运行以下代码时出现错误AttributeError at /signup 'str' object has no attribute 'read'...print(json.load(call.text))
  • 据我所知,上面没有显示那部分代码,所以不确定发生了什么
  • @OmarJandali 不是json.load 而是json.loads,注意末尾的s
  • 我将load 更改为loads,现在即将出现Expecting value: line 1 column 1 (char 0)
猜你喜欢
  • 2020-12-25
  • 2011-05-20
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2018-09-02
  • 2020-03-04
相关资源
最近更新 更多