“JSONDecodeError”类型的对象不是JSON serializab

2024-04-25 09:54:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习Django并试图创建一个API。它是一个简单的API,从表中获取定义并将其作为响应返回。但是每当我试图在请求中发送一个关键字时,就会得到一个错误,类型为“jsondecodererror”的对象不是JSON可序列化的。我在这里做错什么了?在

@api_view(['POST'])
 def getdetails(request):
  try:
    connection = sqlite3.connect('{}.db'.format('insure'))
    cursor = connection.cursor()

    plan = json.loads(request.body.decode('utf-8'))

    cursor.execute(

        """SELECT INSURANCE_TYPE_DESC FROM tblInsurancePlans WHERE INSURANCE_TYPE LIKE '%{}%'""".format(plan)

    )

    rows = cursor.fetchall()

    for row in rows:
        return JsonResponse(str(row), safe=False)

except Exception as e:
    return Response(e)

然而,当我尝试硬编码关键字(plan)时,它起作用了,我得到了响应。在


Tags: djangoapiformatreturn定义requesttype错误
1条回答
网友
1楼 · 发布于 2024-04-25 09:54:46

当您query获取多行的数据库时,result在django中是queryset (orderDict),因此您必须serialize它们,并且convert为正确的格式。在

根据api,response将只接受json数据。在

对于more info on how to use serializers。在

  • 注意:

    在返回一个response之后,服务器和客户端之间的connection得到{}。
    从一个api request中,您只能发送一个响应。
    {13}你要回来 你必须在一个响应中发送所有数据。

相关问题 更多 >