El 8 de junio de 2011 21:20, lopz <lowlife...@gmail.com> escribió:

> El día 8 de junio de 2011 21:40, Manuel Enrique González Ramírez
> <maeng...@gmail.com> escribió:
> >
> >
> > El 8 de junio de 2011 18:59, lopz <lowlife...@gmail.com> escribió:
> >>
> >> El día 8 de junio de 2011 18:32, Manuel Enrique González Ramírez
> >> <maeng...@gmail.com> escribió:
> >> > El 8 de junio de 2011 16:43, Carlos Zuniga <carlos....@gmail.com>
> >> > escribió:
> >> >>
> >> >> Hola,
> >> >>
> >> >> 2011/6/8 Manuel Enrique González Ramírez <maeng...@gmail.com>:
> >> >> > Hola a tod@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]
>

A esto es lo que solemos llamarle de forma coloquial.... error de indio.


> En esta parte está sobre escribiendo tu variable y se le asigna un
> tipo str, con cambiar:
> c = linea2[7:17]
> por
> linea = linea2[7:17]
> y
> >     ficherosalida2.write(c)
>
> por ficherosalida2.write(linea)
>
> deberia funcionar
>
> >     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()
> >
>
> Ahora  me vota este error:
c.executemany('insert into tabla1(secuencia) values(?)', secc)
ProgrammingError: Incorrect number of bindings supplied. The current
statement uses 1, and there are 0 supplied.

Tocará leer más a ver dónde está el error; por ahora, a trabajar....


> Y.. es que por eso se recomienda poner nombres de variables que
> describan al objeto,
> por ejemplo cursor en lugar de c me parece mejor
>
>
> >>
> >> 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@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@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@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@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@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@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Reply via email to