[Python-es] Problemas con executemany desde python con SQLite

Manuel Enrique González Ramírez maengora en gmail.com
Jue Jun 9 03:40:31 CEST 2011


El 8 de junio de 2011 18:59, lopz <lowlifebob en gmail.com> escribió:

> El día 8 de junio de 2011 18:32, Manuel Enrique González Ramírez
> <maengora en gmail.com> escribió:
> > El 8 de junio de 2011 16:43, Carlos Zuniga <carlos.zun en gmail.com>
> escribió:
> >>
> >> Hola,
> >>
> >> 2011/6/8 Manuel Enrique González Ramírez <maengora en gmail.com>:
> >> > Hola a tod en s,
> >> > Estoy tratando de insertar un archivo desde Python con SQLite.  La
> >> > primera
> >> > vez funciono sin inconvenientes, pero al vaciar la tabla y correr
> >> > nuevamente
> >> > el script falla arrojando este error:
> >> > Traceback (most recent call last):
> >> >   File "/home/manuel/python/diferencias/temp2.py", line 45, in
> <module>
> >> >     c.executemany('insert into tabla(secuencia) values(?)', secc)
> >> > AttributeError: 'str' object has no attribute 'executemany'
> >>
> >> Parece que tu objeto c es una cadena de texto, no un cursor de sqlite
> >>
> >> >
> >> > El fragmento del codigo
> >> > secc= csv.reader(open('datosg.csv'))
> >> > c.executemany('insert into tabla(secuencia) values(?)', secc)
> >> > conexion.commit()
> >> >
> >>
> >> Tal vez te falta c = conexion.cursor() antes de ese fragmento?
> >
> >  Ya la tenía definida:
> > # Datos de conexion
> > conexion = sqlite3.connect('dif_db.sqlite')
> > # Configuracion del cursor
> > c = conexion.cursor()
> >>
>
> lo tienes así?
>
> conexion = sqlite3.connect('dif_db.sqlite')
> c = conexion.cursor()
> c.execute.....
>
> Si es así no debería decirte que c es un str, podrías poner el código
> completo de esa parte?
>

Código completo

#!/usr/bin/env python
# -*- coding: cp1252 -*-
import os,sys,csv
import sqlite3

# Datos de conexion
conexion = sqlite3.connect('dif_db.sqlite')
# Configuracion del cursor
c = conexion.cursor()

# Limpio las tablas
c.execute('delete from tabla1')
conexion.commit()
print 'Tabla1 inicializada'

c.execute('delete from tabla2')
conexion.commit()
print 'Tabla2  inicializada'

# Solicito el nombre de los archivos a analizar
fc = open('archivo1.txt','r')
fg = open('archivo2.txt','r')

ficherosalida = open('datosc.csv','w')
for linea in fc:
    ficherosalida.write(linea.split('|')[-1])
fc.close()
ficherosalida.close()

print 'Datos de Tabla1 preparados'

ficherosalida2 = open('datosg.csv','w')
for linea2 in fg:
    c = linea2[7:17]
    ficherosalida2.write(c)
    ficherosalida2.write('\n')
fg.close()
ficherosalida2.close()



# Abre el archivo y lo prepara para insertar los datos
# en la bdd
secc= csv.reader(open('datosg.csv'))
c.executemany('insert into tabla1(secuencia) values(?)', secc)
conexion.commit()

conexion.close()



>
> saludOS
>
> >> Saludos
> >> --
> >> Linux Registered User # 386081
> >> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
> >> de leer manuales.
> >> _______________________________________________
> >> Python-es mailing list
> >> 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/
> >
> >
>
>
>
> --
> lopz es libre, usa --> GNU/linux gentoo
>
> +--[RSA 2048]--+
> |  ..o.o=+       |
> |   o =o*.+      |
> |  . . *oO .      |
> |     .EBoo      |
> |      o.S         |
> +--[lopz.org]--+
> _______________________________________________
> Python-es mailing list
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110608/9683f11e/attachment.html>


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