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