Estoy tratando de recuperar las filas de una tabla usando la biblioteca pyobc en Python.
Pude recuperar las tablas y los campos de una tabla con éxito. Ahora tengo una tabla llamada “apx_roomtypes” con los datos de la siguiente manera,
Sin embargo, cuando agrego las filas de pyodbc a una lista y luego trato de volcar la lista a JSON, aparece el error
Error de tipo: (1, ‘Estándar’, ‘Para 5 miembros’, 123) no es serializable JSON
Aquí está el código de 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)
¿Cómo puedo solucionar este error?
Cuando está iterando sobre rows
, cada row
es una instancia de Row
y no una list
. Puede convertirlo en una lista (que se puede serializar mediante JSON) de la siguiente manera:
rows = cursor.fetchall() for row in rows: data.append([x for x in row]) # or simply data.append(list(row))
Si desea que devuelva un diccionario de pares clave / valor en lugar de una lista de valores, mire esta respuesta .