gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:39 25 4
gpt4 key购买 nike

我刚刚开始学习 Django,并尝试创建一个 API。它是一个简单的 API,它从表中获取定义并将其作为响应返回。但每当我尝试在请求中发送关键字时,都会收到错误,类型为“JSONDecodeError”的对象不是 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)

但是,当我尝试对关键字(计划)进行硬编码时,它有效并且我得到了响应。

最佳答案

当您查询数据库以获取多行时,结果在django中作为查询集(orderDict)出现,因此您有来序列化它们,并且应该转换为正确的格式。

response 根据 api 仅接受 json 数据。

对于more info on how to use serializers .

  • 注意:

    返回一个响应后,服务器和客户端之间的连接关闭
    对于一个 api 请求,您只能发送一个响应。
    但在这里您试图返回多个响应。这不起作用
    您必须在单个响应中发送所有数据。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com