Python JSON到django对象
我试图将JSON POST请求分配给对象,但它给我以下错误:Python JSON到django对象,python,json,django,api,Python,Json,Django,Api,我试图将JSON POST请求分配给对象,但它给我以下错误: "Key 'email' not found in <QueryDict: {}>" list indices must be integers, not str JSON请求: [{ "email":"example@example.com" }] 请帮助,django的新成员:) 我将代码更改为: @api_view(['POST'])
"Key 'email' not found in <QueryDict: {}>"
list indices must be integers, not str
JSON请求:
[{
"email":"example@example.com"
}]
请帮助,django的新成员:)
我将代码更改为:
@api_view(['POST'])
def login_views(request):
if request.method == 'POST':
email = request.DATA['email']
result = email
return HttpResponse(result)
再次出现以下错误:
"Key 'email' not found in <QueryDict: {}>"
list indices must be integers, not str
看起来您正在使用Django REST框架,对吗?为了访问json post数据,您必须使用request.data:它将允许您访问post解析数据。因此,由于您的json:
[{
"email":"example@example.com"
}]
是json中的一个数组(以及python中的一个列表-请注意[]),必须通过以下方式访问对象:
email = request.DATA[0]["email"]
顺便说一下,错误是:
list indices must be integers, not str
这意味着request.DATA是一个列表,因此您不能像使用str键一样访问它(request.DATA[“email”])。打印request.POST并粘贴到此处!我会尽力帮助你的!我打印request的值。POST它给出了“Key”email“not found in”注释掉行
email=request.DATA['email']
您的打印语句因此无法工作。是的,该行被注释掉了。编写此打印请求。POST
您没有正确地为代码编制索引。您应该为所有应在if中的行包含制表符缩进。