我尝试使用Django REST框架构建API
我得到了
type 'TypeError' is not JSON serializable
我该怎么做才能修好?
这是我的view.py
class NewsViewSet(viewsets.ModelViewSet):
queryset = News.objects.all()
serializer_class = NewsSerializer
def list(self, request, **kwargs):
try:
nba = query_nba_by_args(**request.query_params)
serializer = NewsSerializer(nba['items'], many=True)
result = dict()
result['data'] = serializer.data
result['draw'] = nba['draw']
result['recordsTotal'] = nba['total']
result['recordsFiltered'] = nba['count']
return Response(result, status=status.HTTP_200_OK, template_name=None, content_type=None)
except Exception as e:
return Response(e, status=status.HTTP_404_NOT_FOUND, template_name=None, content_type=None)
4条答案
按热度按时间fivyi3re1#
Python异常不是json可序列化的。它在
try
中失败,因为一些连接或内容不可用的问题,然后进入except
块,在那里你将异常e
原样传递给Response()
,所以这就是问题所在。解决方案-检查URL,并在except块中将异常e
转换为字符串并传递给Response(str(e), status=status.HTTP_404_NOT_FOUND, template_name=None, content_type=None)
。lyfkaqu12#
1u4esq0p3#
Django无法将Exception对象转换为JSON格式并引发错误。要修复它,您应该将错误转换为字符串并将结果传递给响应:
xqkwcwgp4#
第一
变更行
为了这个
或使用