[Python-es] respuesta consulta python y sqlite

gerardo Juarez gerardojuarez en buyteknet.info
Jue Jun 2 00:02:57 CEST 2011


Manuel,

Ve lo que dice Joe. No he usado nunca SQLite, pero supongo que sigue la 
DB-API 2.0 de Python. Si ese es el caso, 'c' en tu
código es un cursor y por lo tanto, como dice Joe, c.execute() ejecuta 
nada más el *query* . Luego tienes que obtener los
datos con c.fetchall() o c.fetchone(). En el caso que pones en el que 
obtienes un sólo número, pasa como en este ejemplo:

cur = db.cursor()
cur.execute('select count(*) from articulos')      # cuantos registros 
hay en esta tabla
row = cur.fetchone()
print row[0]                     # imprime cuantos registros obtuvo

Esto es, aún siendo count(*) lo que quieres, te va a regresar un arreglo 
(o lista), por lo que lo recibes como tal y el número es
el primer y único elemento de la lista (o arreglo).

Lo que estás imprimiendo es el cursor mismo, por eso lo transforma a una 
representación imprimible y obtienes:
<sqlite3.Cursor object at 0x0126B4E0>

Saludos
Gerardo



Manuel Enrique González Ramírez wrote:
> Perdón a todos,
>
> De los afanes me comí unas líneas de código (justos las del problema):
>
> # Consultemos los datos
> c.execute('SELECT * FROM tabla')
>
> for row in c:
>     print row
>
> c.execute('select count(secuencia) from tabla')
> print 'Total transacciones: ',c
>
>
>
> El 1 de junio de 2011 16:25, joe di castro <enxebree en gmail.com 
> <mailto:enxebree en gmail.com>> escribió:
>
>     Por cierto la documentación que necesites sobre SQLite y sqlite3 la
>     tienes aquí:
>
>     http://docs.python.org/library/sqlite3.html#module-sqlite3
>     http://www.sqlite.org/
>
>     Saludos
>     Joe
>
>     El mié, 01-06-2011 a las 15:19 -0500, Manuel Enrique González Ramírez
>     escribió:
>     > Saludos.
>     >
>     >
>     > Se me presenta un situación en la empresa para la que trabajo que
>     > quiero solucionar con un script de Python acompañado de SQLite.  El
>     > asunto es que no tengo mucha experiencia con SQLite y al querer
>     hacer
>     > un count de una tabla me arroja el resultado con el siguiente
>     formato:
>     >
>     >
>     > <sqlite3.Cursor object at 0x0126B4E0>
>     >
>     >
>     > El fragmento de codigo que me genera el resultado es este:
>     >
>     >
>     > c.execute('SELECT * FROM tabla')
>     >
>     >
>     > for row in c:
>     >     print row
>     >
>     >
>     > Alguien me puede indicar como ver ese resultado en formato decimal??
>     >
>     >
>     > La misma consulta la hago en el editor de sqlite (plugin de
>     Mozilla) y
>     > me arroja el dato en el formato deseado; también me di una
>     pasada por
>     > San Google pero no logro hallar documentación al respecto.
>     >
>     >
>     >
>     >
>     > A todos muchas gracias
>     >
>     > --
>     > Manuel Enrique González Ramírez
>     > http://maengora.blogspot.com
>     >
>     > _______________________________________________
>     > Python-es mailing list
>     > Python-es en python.org <mailto:Python-es en python.org>
>     > http://mail.python.org/mailman/listinfo/python-es
>     > FAQ: http://python-es-faq.wikidot.com/
>
>
>     _______________________________________________
>     Python-es mailing list
>     Python-es en python.org <mailto:Python-es en python.org>
>     http://mail.python.org/mailman/listinfo/python-es
>     FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> -- 
> Manuel Enrique González Ramírez
> http://maengora.blogspot.com
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>   



Más información sobre la lista de distribución Python-es