r12*_*597 4 python django json
对不起我的英语不好。我有来自另一台服务器的一些数据,但我需要像 JSON 一样输出这些数据。
如果我在控制台中打印响应:
{
'responseStatus': {
'status': [],
},
'modelYear': [
1981,
1982
]
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我像有错误一样返回此响应HttpResponse
AttributeError:“str”对象没有属性“_meta”
这是我的代码:
data = serializers.serialize('json', response, ensure_ascii=False)
return HttpResponse(data, content_type="application/json")
Run Code Online (Sandbox Code Playgroud)
更新:
我尝试过这个:
from django.http import JsonResponse
def some_view(request):
...
return JsonResponse(response, safe=False)
Run Code Online (Sandbox Code Playgroud)
但有错误:
“ModelYears”类型的对象不可 JSON 序列化
更新:
我确实是这样的:
import json
from django.http import JsonResponse
def some_view(request):
...
return JsonResponse(json.loads(response))
Run Code Online (Sandbox Code Playgroud)
但有错误:
the JSON object must be str, bytes or bytearray, not 'ModelYears'
Run Code Online (Sandbox Code Playgroud)
Django 文档对框架的描述如下serializers:
\n\n\nDjango\xe2\x80\x99s 序列化框架提供了一种将 \xe2\x80\x9c\xe2\x80\x9d Django 模型转换为其他格式的机制。
\n
该错误表明您的变量response是stringDjango 模型对象而不是 Django 模型对象。该字符串似乎有效,JSON因此您可以使用JsonResponse:
import json\nfrom django.http import JsonResponse\n\n# View\nreturn JsonResponse(json.loads(response))\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
21622 次 |
| 最近记录: |