如何在Django中执行JSON处理程序

bdh*_*nof 11 python django json

我想在django视图中获取并解析json.

请求模板:

var values = {};
$("input[name^='param']").each(function() {
    values[$(this).attr("name")] = $(this).val();
});

$.ajax
({
    type: "POST",
    url: page,
    contentType: 'application/json; charset=utf-8',
    async: false,
    processData: false,
    data: $.toJSON(values),
    success: function (resp) {
        console.log(resp);

    }
});
Run Code Online (Sandbox Code Playgroud)

在视图中:

import json
...
req = json.loads(request.body)
return HttpResponse(req)
Run Code Online (Sandbox Code Playgroud)

它给我错误:

JSON对象必须是str,而不是'bytes'

我做错了什么?

bdh*_*nof 29

大多数Web框架将字符串表示视为utf-8,因此Python 3中的字节(如Django和Pyramid).在python3中需要解码('utf-8')body:

req = json.loads( request.body.decode('utf-8') )
Run Code Online (Sandbox Code Playgroud)


los*_*zen 5

json_data = json.loads(request.read().decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

为我工作