我将一些原始JSON发布到我的后端
(?<=\\))
然而,当我尝试
时{
"access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb",
"id": 3,
"order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}]
}
我收到print (request.POST.get("access_token"))
但是,当我做的时候
None
值似乎在那里:
print (request.body)
我正在使用Postman发布数据。
我想将访问令牌存储到某个变量中,如下所示:
b'{\n\t"access_token": "hU5C7so4reJOYTzPyhKPs8PWq07tb",\n\t"id": 3,\n\t",\n\t"order_details": [{"meal_id": 1, "quantity": 3}, {"meal_id": 2, "quantity": 2}]\n}'
发布数据
我仍然是Django的新手,任何帮助都会很棒。
答案 0 :(得分:2)
只需执行json.loads即可。
import json
json_data = json.loads(request.body)
答案 1 :(得分:1)
Request.POST。 有关详细信息,请参见django doc和this answer。 由于在您的情况下,您正在发布“纯文本” json,因此您将在request.body下找到您的有效负载。 您可以将主体从二进制解码为dict,如下所示:
import json
body = json.loads(request.body.decode('utf-8'))
access_token = body.get("access_token")
答案 2 :(得分:0)
你需要首先解码json:
int priority(char x)
{
if(x=='+'|| x=='-') {
return 1;
} else if(x=='(') {
return 0;
} else if(x=='*'||x=='/') {
return 2;
} else {
return 3;
}
}
int main()
{
char exp[50], *e, x;
scanf("%s", exp);
e = exp;
while(*e != '\0') {
if(isalnum(*e)) {
printf("%c",*e);
} else {
while(priority(stack[top]) >= priority(*e)) {
printf("%c",pop());
}
push(*e);
}
e++;
}
while(top!=-1) {
printf("%c",pop());
}
return 0;
}
然后你可以回复你的信息
import json
variable = urlopen(request).read().decode('utf-8')
json_obj = json.loads(variable)
希望这个帮助