<br><br><div class="gmail_quote">El 8 de junio de 2011 21:20, lopz <span dir="ltr"><<a href="mailto:lowlifebob@gmail.com">lowlifebob@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
El día 8 de junio de 2011 21:40, Manuel Enrique González Ramírez<br>
<div><div></div><div class="h5"><<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>> escribió:<br>
><br>
><br>
> El 8 de junio de 2011 18:59, lopz <<a href="mailto:lowlifebob@gmail.com">lowlifebob@gmail.com</a>> escribió:<br>
>><br>
>> El día 8 de junio de 2011 18:32, Manuel Enrique González Ramírez<br>
>> <<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>> escribió:<br>
>> > El 8 de junio de 2011 16:43, Carlos Zuniga <<a href="mailto:carlos.zun@gmail.com">carlos.zun@gmail.com</a>><br>
>> > escribió:<br>
>> >><br>
>> >> Hola,<br>
>> >><br>
>> >> 2011/6/8 Manuel Enrique González Ramírez <<a href="mailto:maengora@gmail.com">maengora@gmail.com</a>>:<br>
>> >> > Hola a tod@s,<br>
>> >> > Estoy tratando de insertar un archivo desde Python con SQLite. La<br>
>> >> > primera<br>
>> >> > vez funciono sin inconvenientes, pero al vaciar la tabla y correr<br>
>> >> > nuevamente<br>
>> >> > el script falla arrojando este error:<br>
>> >> > Traceback (most recent call last):<br>
>> >> > File "/home/manuel/python/diferencias/temp2.py", line 45, in<br>
>> >> > <module><br>
>> >> > c.executemany('insert into tabla(secuencia) values(?)', secc)<br>
>> >> > AttributeError: 'str' object has no attribute 'executemany'<br>
>> >><br>
>> >> Parece que tu objeto c es una cadena de texto, no un cursor de sqlite<br>
>> >><br>
>> >> ><br>
>> >> > El fragmento del codigo<br>
>> >> > secc= csv.reader(open('datosg.csv'))<br>
>> >> > c.executemany('insert into tabla(secuencia) values(?)', secc)<br>
>> >> > conexion.commit()<br>
>> >> ><br>
>> >><br>
>> >> Tal vez te falta c = conexion.cursor() antes de ese fragmento?<br>
>> ><br>
>> > Ya la tenía definida:<br>
>> > # Datos de conexion<br>
>> > conexion = sqlite3.connect('dif_db.sqlite')<br>
>> > # Configuracion del cursor<br>
>> > c = conexion.cursor()<br>
>> >><br>
>><br>
>> lo tienes así?<br>
>><br>
>> conexion = sqlite3.connect('dif_db.sqlite')<br>
>> c = conexion.cursor()<br>
>> c.execute.....<br>
>><br>
>> Si es así no debería decirte que c es un str, podrías poner el código<br>
>> completo de esa parte?<br>
><br>
> Código completo<br>
> #!/usr/bin/env python<br>
> # -*- coding: cp1252 -*-<br>
> import os,sys,csv<br>
> import sqlite3<br>
> # Datos de conexion<br>
> conexion = sqlite3.connect('dif_db.sqlite')<br>
> # Configuracion del cursor<br>
> c = conexion.cursor()<br>
> # Limpio las tablas<br>
> c.execute('delete from tabla1')<br>
> conexion.commit()<br>
> print 'Tabla1 inicializada'<br>
> c.execute('delete from tabla2')<br>
> conexion.commit()<br>
> print 'Tabla2 inicializada'<br>
> # Solicito el nombre de los archivos a analizar<br>
> fc = open('archivo1.txt','r')<br>
> fg = open('archivo2.txt','r')<br>
> ficherosalida = open('datosc.csv','w')<br>
> for linea in fc:<br>
> ficherosalida.write(linea.split('|')[-1])<br>
> fc.close()<br>
> ficherosalida.close()<br>
> print 'Datos de Tabla1 preparados'<br>
> ficherosalida2 = open('datosg.csv','w')<br>
> for linea2 in fg:<br>
> c = linea2[7:17]<br></div></div></blockquote><div><br></div><div>A esto es lo que solemos llamarle de forma coloquial.... error de indio.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div class="h5"><br>
</div></div>En esta parte está sobre escribiendo tu variable y se le asigna un<br>
tipo str, con cambiar:<br>
c = linea2[7:17]<br>
por<br>
linea = linea2[7:17]<br>
y<br>
> ficherosalida2.write(c)<br>
<br>
por ficherosalida2.write(linea)<br>
<br>
deberia funcionar<br>
<div class="im"><br>
> ficherosalida2.write('\n')<br>
> fg.close()<br>
> ficherosalida2.close()<br>
><br>
><br>
> # Abre el archivo y lo prepara para insertar los datos<br>
> # en la bdd<br>
> secc= csv.reader(open('datosg.csv'))<br>
> c.executemany('insert into tabla1(secuencia) values(?)', secc)<br>
> conexion.commit()<br>
> conexion.close()<br>
><br>
<br></div></blockquote><div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div>Ahora me vota este error:</div><div>c.executemany('insert into tabla1(secuencia) values(?)', secc)</div><div>ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 0 supplied. </div>
</div><div><br></div><div>Tocará leer más a ver dónde está el error; por ahora, a trabajar....</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
</div>Y.. es que por eso se recomienda poner nombres de variables que<br>
describan al objeto,<br>
por ejemplo cursor en lugar de c me parece mejor<br>
<div><div></div><div class="h5"><br>
<br>
>><br>
>> saludOS<br>
>><br>
>> >> Saludos<br>
>> >> --<br>
>> >> Linux Registered User # 386081<br>
>> >> A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos<br>
>> >> de leer manuales.<br>
>> >> _______________________________________________<br>
>> >> Python-es mailing list<br>
>> >> <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
>> >> <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
>> >> FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > Manuel Enrique González Ramírez<br>
>> > <a href="http://maengora.blogspot.com" target="_blank">http://maengora.blogspot.com</a><br>
>> ><br>
>> > _______________________________________________<br>
>> > Python-es mailing list<br>
>> > <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
>> > <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
>> > FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
>> ><br>
>> ><br>
>><br>
>><br>
>><br>
>> --<br>
>> lopz es libre, usa --> GNU/linux gentoo<br>
>><br>
>> +--[RSA 2048]--+<br>
>> | ..o.o=+ |<br>
>> | o =o*.+ |<br>
>> | . . *oO . |<br>
>> | .EBoo |<br>
>> | o.S |<br>
>> +--[<a href="http://lopz.org" target="_blank">lopz.org</a>]--+<br>
>> _______________________________________________<br>
>> Python-es mailing list<br>
>> <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
>> <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
>> FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
><br>
><br>
> --<br>
> Manuel Enrique González Ramírez<br>
> <a href="http://maengora.blogspot.com" target="_blank">http://maengora.blogspot.com</a><br>
><br>
> _______________________________________________<br>
> Python-es mailing list<br>
> <a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
> FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
><br>
<br>
<br>
<br>
--<br>
lopz es libre, usa --> GNU/linux gentoo<br>
<br>
+--[RSA 2048]--+<br>
| ..o.o=+ |<br>
| o =o*.+ |<br>
| . . *oO . |<br>
| .EBoo |<br>
| o.S |<br>
+--[<a href="http://lopz.org" target="_blank">lopz.org</a>]--+<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Manuel Enrique González Ramírez<br><a href="http://maengora.blogspot.com">http://maengora.blogspot.com</a><br>