Python Django在request.body中发布数据,但不能存储在变量中
我正在向我的后端发布一些原始JSONPython Django在request.body中发布数据,但不能存储在变量中,python,django,Python,Django,我正在向我的后端发布一些原始JSON { "access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb", "id": 3, "order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}] } 然而,当我试图 print (request.POST.get("access_token")) 我收到无 但是,当我这样做的时候 print (r
{
"access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb",
"id": 3,
"order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}]
}
然而,当我试图
print (request.POST.get("access_token"))
我收到无
但是,当我这样做的时候
print (request.body)
这里的价值观似乎是:
b'{\n\t“访问令牌”:“hU5C7so4reJOYTzPyhKPs8PWq07tb”,\n\t“id”:3、\n\t“,\n\t“订单详细信息”:[{“用餐id”:1,“数量”:3},{“用餐id”:2,“数量”:2}]\n}'
我正在使用邮递员来发布数据
我想将访问令牌存储到某个变量中,如下所示:
access_token = request.POST.get("access_token")
使用post数据
我还是Django的新手,任何帮助都会很好。您需要先解码json:
import json
variable = urlopen(request).read().decode('utf-8')
json_obj = json.loads(variable)
然后你可以检索你的信息
for i in json_obj:
token = i['access_token']
order_details = i['order_details']
希望这个帮助能起作用
import json
json_data = json.loads(request.body)
发送表单数据时,将填充Request.POST。 有关详细信息,请参见和。 因为在您的例子中,您发布的是“普通”json,所以您将在request.body下找到您的负载。 您可以将正文从二进制解码为dict,如下所示:
import json
body = json.loads(request.body.decode('utf-8'))
access_token = body.get("access_token")
Django不知道您正在发布JSON或任何其他格式。您需要解码您获得的数据。Google up
JSON。loads
body需要解码。否则您会得到TypeError:JSON对象必须是str,而不是“bytes”。这与此用例无关,后者是接收POST请求的后端端点。一些解释为什么会出现这种情况与其他答案相比,nswer是一个进步,这将有助于它。