我试图在Python中使用pyobc库检索表的行.
我能够成功检索表的表和字段.现在我有一个名为"apx_roomtypes"的表,其数据如下,
但是,当我将pyodbc行附加到列表然后尝试将列表转储到JSON时,我得到错误
TypeError:(1,'标准','对于5个成员',123)不是JSON可序列化的
这是python代码:
class execute_query: def GET(self,r): web.header('Access-Control-Allow-Origin', '*') web.header('Access-Control-Allow-Credentials', 'true') cnxn = pyodbc.connect(connection_string) data = [] cursor = cnxn.cursor() query = web.input().query cursor.execute(query) rows = cursor.fetchall() for row in rows: data.append(row) return json.dumps(data)
我该如何解决这个错误?
当你迭代时rows
,每个row
都是一个Row
实例,而不是一个实例list
.您可以将其转换为列表(可序列化的JSON),如下所示:
rows = cursor.fetchall() for row in rows: data.append([x for x in row]) # or simply data.append(list(row))
如果您希望它返回键/值对的字典而不是值列表,那么请查看此答案.