JSONDecodeError Django?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (261)

我有一个API发送POST请求(JSON)进行测试。我在JSON方面做了很多工作,但突然间它停止了工作并给了我一个JSONDecodeError。我尝试了各种各样的东西,比如使用,request.POST但是没有任何工作正确,就像我说过的那样在某个时刻工作。

测试给出了错误:

curl -X POST http://127.0.0.1:8000/webhook/webhook_receiver/ -d '{"foo": "bar"}'

错误: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

视图:

def webhook_receiver(request, *args, **kwargs):
    if request.method == 'POST':
        # Get the incoming JSON Data
        data = request.body.decode('utf-8')
        received_json_data = json.loads(data)
        return HttpResponse(received_json_data)
    else:
        return HttpResponse("not Post")
提问于
用户回答回答于

实际的错误(你真的应该发布)看起来像这样:

Exception Type: JSONDecodeError at /webhook/webhook_receiver/ Exception Value: Expecting value: line 1 column 1 (char 0)

这就是说你传递给解码器的数据不是以一个有效的字符开头的(例如,如果JSON应该是字典,则为“{”或者数组为“[”)。你可以通过在数据的开头添加一个print()函数来解决这个问题,例如:

print('first few characters=<{}>'.format(data[:4]))

扫码关注云+社区

领取腾讯云代金券