volcar ficheros python en tablas MySQL
Chema Cortes
py en ch3m4.org
Lun Mayo 21 19:02:20 CEST 2007
El Lunes, 21 de Mayo de 2007 14:47, Javier Castrillo escribió:
> Ya lo solucioné, el tema era que supongamos que el resultado de un query
>
> SELECT dias FROM semana
>
> debería dar:
>
> [lunes, martes, miércoles, jueves, viernes]
>
> Pero a mí me traía (Usando cursor.fetchall())
>
> [(lunes,) , (martes,), (miércoles,), (jueves,), (viernes,)]
>
> Y eso que ya me lo habían explicado, pero algunos somos muy de piedra...
>
>
> La solución es que devuelve una tupla con TODOS los resultados pero si
> no hay más que uno por línea pone coma + vacío, o sea (lunes, ),
Lo que llamas "coma + vacío" es el modo que tiene python de
representar "monotuplas", o sea, tuplas de un sólo elemento. De esa manera se
puede distinguir una "monotuplas" del uso normal de los paréntisis en una
expresión para agrupar elementos.
> Por eso en lugar de poner resultado [x]
> hay que poner resultado[x][0] para que no ponga más que el primero de
> cada línea...
Efectivamente, es el modo de obtener el resultado que esperabas. Prueba a usar
compresión de listas:
[x[0] for x in cur.fetchall()]
Más información sobre la lista de distribución Python-es