Python JSON到django对象

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'])

我试图将JSON 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中的行包含制表符缩进。