Saltar al contenido

Convertir el resultado de sql a la lista de python

Este post ha sido probado por expertos para que tengas la seguridad de la exactitud de este artículo.

Solución:

Si tiene un iterable en Python, para hacer una lista, simplemente puede llamar al list() incorporado:

list(cursor.fetchall())

Tenga en cuenta que un iterable suele ser tan útil como una lista, y potencialmente más eficiente que perezoso.

Su código original falla porque no tiene demasiado sentido. Recorres las filas y las enumeras, por lo que obtienes (0, first_row), (1, second_row)etc… – esto significa que está creando una lista del enésimo elemento de cada enésima fila, que no es lo que quería en absoluto.

Este código muestra algunos problemas: en primer lugar, list() sin ningún argumento generalmente se reemplaza mejor con un literal de lista vacía ([]), ya que es más fácil de leer.

A continuación, está intentando realizar un bucle por índice, esta es una mala idea en Python. Recorra los valores, en sí mismos, no los índices que luego usa para obtener valores.

También tenga en cuenta que cuando Ud. hacer necesita construir una lista de valores como esta, una comprensión de lista es la mejor manera de hacerlo, en lugar de crear una lista y luego agregarla.

cursor = connnect_db()

query = "SELECT * FROM `tbl`"

cursor.execute(query)

result = cursor.fetchall() //result = (1,2,3,) or  result =((1,3),(4,5),)

final_result = [list(i) for i in result]

Cuando utilicé la respuesta de Sudhakar Ayyar, el resultado fue una lista de listas, a diferencia de la lista de tuplas creada por .fetchall(). Esto todavía no era lo que quería. Con un pequeño cambio en su código, pude obtener una lista simple con todos los datos de la consulta SQL:

cursor = connnect_db()

query = "SELECT * FROM `tbl`"

cursor.execute(query)

result = cursor.fetchall() //result = (1,2,3,) or  result =((1,3),(4,5),)

final_result = [i[0] for i in result]

Además, las dos últimas líneas se pueden combinar en:

final_result = [i[0] for i in cursor.fetchall()]

Si entiendes que te ha resultado de utilidad este post, sería de mucha ayuda si lo compartieras con más seniors y nos ayudes a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *