繁体   English   中英

如何处理在 Python 中字符串化的 json 对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM