python - 'TypeError' 类型的对象不是 JSON 可序列化的

标签 python django django-rest-framework restful-url

我尝试使用 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)

最佳答案

Django 无法将异常对象转换为 JSON 格式并引发错误。要修复它,您应该将错误转换为字符串并将结果传递给响应:

except Exception as e:
    return Response(str(e), status=status.HTTP_404_NOT_FOUND, template_name=None, content_type=None)

关于python - 'TypeError' 类型的对象不是 JSON 可序列化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49537095/

相关文章:

python - 小数(0.19)会产生很长的数字吗?

python - 显示上传/选择的图像而不将其保存在 Django 的数据库中

python - Django rest framework api - 图片 url 未正确返回

python - Django 注销 URL 重定向问题

Python 多重处理

python - 使用 Python 枚举定义 SQLAlchemy 枚举列会引发 "ValueError: not a valid enum"

python - 在 Django 中链接静态文件目录

python - 如何删除字符串中最后一个数字之后的所有内容

python - django-tinymce 无法正确显示小部件

django - 使用 Vue.js、Django Rest Framework 作为后端和/api/在同一服务器上配置 Nginx?