我正在尝试使用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)
如何解决此错误?
答案 0 :(得分:16)
当您在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))
如果您希望它返回键/值对的字典而不是值列表,请选择look at this answer。