我刚刚开始学习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)
但是,当我尝试对关键字(计划)进行硬编码时,它可以工作并得到响应。
答案 0 :(得分:0)
当您query
用于提取多行的数据库时,result
在django中是queryset (orderDict)
的形式,因此您必须serialize
,并且应该{{ 1}}转换为适当的格式。
convert
将仅根据api接受response
数据。
more info on how to use serializers。
注意:
返回一个json
后,服务器和客户端之间的response
将得到connection
。
从一个closed
中您只能发送一个答复。
但在这里您尝试返回api request
。这将是multiple responses
。
您将必须在单个响应中发送所有数据。