[英]How to handle json object that was stringified in Python
我对JSON.stringify()
以及如何解析它有疑问。 我在 python (Django) 中有一个前端代码和一个后端。
我的 fetch 函数在前端看起来像这样。
const response = await fetch('some-url', {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
payload: payload
})
});
当我在JSON.stringify({payload: payload})
上执行 console.log 时,它的类型是string 。 然后在我的后端代码中,当我打印出request.data['payload'])
时,它的类型是<class 'dict'> 。 我很困惑为什么当我向支持者发送请求时类型发生了变化。 我打算使用json.loads()
来解析有效负载,但由于它已经是字典,因此返回错误,我可以只执行request.data['payload']
来访问它的数据。
有人可以解释这种行为吗?
所以我猜你正在使用 Django Rest 框架。
request.data
将在 Django Rest 中为您提供请求主体的解析版本。 因为您使用的是 content-type: json,所以它会尝试将其解析为 .. json。
请在此处查看文档: https ://www.django-rest-framework.org/api-guide/requests/#data
在解析 JSON 请求的常规 Django 中,它需要使用 json.loads,例如:
parsed_json = json.loads(request.body)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.