You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF返回JSON响应首尾带多余双引号问题如何解决

问题原因

手动将字典通过str()转为字符串后传入Response,DRF内置JSON渲染器会将传入的字符串作为普通文本值做JSON序列化,序列化字符串值时会自动在外层包裹双引号,最终产生首尾多余引号的异常返回。

修复方案

不要手动对字典做字符串转换,直接传入原生Python字典即可,DRF会自动完成字典到标准JSON格式的序列化,无需手动处理格式。
修正后代码:

from rest_framework import status
from rest_framework.response import Response

# 其余业务逻辑......
return Response(
    data={'id': pk},
    status=status.HTTP_403_FORBIDDEN
)
注意事项
  • 无需手动指定content_type='application/json',DRF的Response默认使用JSON渲染器时会自动设置正确的响应头,手动指定反而可能在配置多渲染器场景下引发冲突。
  • 标准JSON规范要求字符串使用双引号包裹,最终接口返回的内容格式为{"id": "54fa0000-1cdd-4c6d-83d7-ab19a7f11944"},属于合规JSON格式,所有前端、HTTP客户端均可正常解析,和单引号包裹的Python字典打印格式有区别是正常现象,不需要额外调整。

内容的提问来源于stack exchange,提问作者Goku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:09:50