Zac*_*ach 48 python django json python-3.x backbone.js
出于某种原因,我无法弄清楚为什么Django没有request.body正确处理我的内容.
它以JSON格式发送,查看NetworkDev Tools 中的选项卡将其显示为请求有效负载:
{creator: "creatorname", content: "postcontent", date: "04/21/2015"}
Run Code Online (Sandbox Code Playgroud)
这正是我希望它发送到我的API的方式.
在Django中,我有一个视图接受此请求作为参数,仅用于我的测试目的,应打印request.body["content"]到控制台.
当然,没有任何东西被打印出来,但是当我打印时,request.body我得到了这个:
b'{"creator":"creatorname","content":"postcontent","date":"04/21/2015"}'
Run Code Online (Sandbox Code Playgroud)
所以我知道我确实有一具尸体.
我尝试过json = json.loads(request.body)也无济于事.json设置该变量后打印也不返回任何内容.
Ala*_*air 130
在Python 3.0到Python 3.5.x中,json.loads()只接受一个unicode字符串,因此request.body在传递给它之前必须解码(这是一个字节字符串)json.loads().
body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
content = body['content']
Run Code Online (Sandbox Code Playgroud)
在Python 3.6中,json.loads()接受字节或字节数组.因此,您不需要解码request.body(假设它以UTF-8,UTF-16或UTF-32编码).
| 归档时间: |
|
| 查看次数: |
65599 次 |
| 最近记录: |