Django视图合并字典后,Rest API返回JSON含\n字符问题求助
解决Django REST API返回JSON出现
\n转义字符的问题 你的问题出在手动使用json.dumps()序列化字典后再传给Response,Django REST Framework(DRF)的Response类本身会自动处理Python对象到JSON的序列化,这就导致了二次转义,最终返回的响应里出现了\n这类换行符的转义序列。
修正后的代码
直接将合并后的字典传入Response即可,无需手动调用json.dumps():
@api_view(['GET']) def json_test(request): dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} merged_dict = {**dict1, **dict2} # 直接传递Python字典,DRF自动完成正确的JSON序列化 return Response(merged_dict)
说明
- 修正后,Postman收到的响应会是标准的JSON格式:
{"a":1,"b":3,"c":4}(注意b的值为3,因为dict2的键值对覆盖了dict1中的同名键)。 - 如果你希望JSON有空格分隔的排版(如你示例中的
{ "a":1, "b":3, "c":4 }),DRF默认的JSON渲染器会输出紧凑格式,若要自定义缩进格式,可以在项目的settings.py中配置:
REST_FRAMEWORK = { 'JSON_RENDERER_CLASS': 'rest_framework.renderers.JSONRenderer', 'JSON_INDENT': 2 # 设置缩进为2个空格,输出带换行的格式化JSON,但Postman会自动识别并美化显示 }
内容的提问来源于stack exchange,提问作者SSS
相关产品推荐
相关产品推荐

