For some reason I cannot figure out why Django isn't handling my request.body content correctly.

它是以JSON格式发送的,查看Dev Tools中的Network选项卡,它显示为请求负载:

{creator: "creatorname", content: "postcontent", date: "04/21/2015"}

这正是我希望它被发送到API的方式.

在Django中,我有一个视图,它接受这个请求作为一个参数,并且仅出于测试目的,应该将request.body["content"]打印到控制台.

当然,什么都没有打印出来,但是当我打印request.body的时候,我会得到这样的结果:

b'{"creator":"creatorname","content":"postcontent","date":"04/21/2015"}'

所以我知道我do号送来了一具身体.

I've tried using json = json.loads(request.body) to no avail either. Printing json after setting that variable also returns nothing.

推荐答案

在Python 3.0到Python 3.5中.x、 json.loads()只接受unicode字符串,所以在将其传递给json.loads()之前,必须对request.body(字节字符串)进行解码.

body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
content = body['content']

In Python 3.6, json.loads() accepts bytes or bytearrays. Therefore you shouldn't need to decode request.body (assuming it's encoded in UTF-8, UTF-16 or UTF-32).

Json相关问答推荐

从Razor Pages的AJAX Json呈现DataTables问题.Net GET

从Json响应中为需要每个值的Post请求提取多个值

如何在JQ过滤器文件中使用多行?

将JSON数组组织到菜单中

使用JQ将JSON输出转换为CSV复杂 struct

在linux控制台中解析json字符串的最简单方法是什么?

jq 对特定键进行过滤并将值整理到单个 csv 单元格中

XSLT 3.0 Json-to-xml,json 包含 html struct

如何修复通过在 tsconfig.json 文件中添加allowImportingTsExtensions引发的错误 TS5023?

使用 jq 工具将文本从 txt 文件转换为 json

PowerShell - JSON/PsCustomObject - 为什么我的数组被扁平化为一个对象?

alert Json 对象

Json.NET 是否缓存类型的序列化信息?

Retrofit2.0 得到 MalformedJsonException 而 json 似乎正确?

Peewee 模型转 JSON

如何让 javascript 从 .json 文件中读取?

请求返回字节,我无法解码它们

如何在 Python 中合并两个 json 字符串?

在 .NET 中缩小缩进的 JSON 字符串

play 2 JSON 格式中缺少的属性的默认值