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

2011-06-09 Por tema Manuel Enrique González Ramírez
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] OFF-TOPIC: Relanzamiento del COS, cursos especializados (y Python)

2011-06-09 Por tema Alfonso de la Guarda
Hola,


El COS relanza sus servicios sociales y cursos altamente
especializados (muchos únicos en el LA)  contando con la
participación de reputados científicos / geeks / hackers nacionales e
internacionales.  Los invitamos a enterarse de esto y sus proyectos en
la web: www.cos-la.net.

Nuestro local se ubica en Lince, pero estamos cerrando unos acuerdos
para otro en Monterrico junto con una importante co-certificación de
valor internacional en ciencia y/o tecnología por cada curso ofrecido.
(más novedades en las próximas semanas).

Los primeros cursos a lanzarse son : Python Básico e Intermedio, pero
ya viene en Julio unos 5 adicionales.




P.D.-  Hemos enviado invitaciones previas a muchos de los que
consideramos mejores en el Perú en diversas áreas de especialización,
si no has recibido una de éstas, te solicitamos disculparnos y te
rogamos comunicarte con nosotros para tu participación en el proyecto:
direcc...@cos-la.net


Saludos,


Alfonso de la Guarda
Centro Open Source(COS)
http://www.cos-la.net
http://alfonsodg.net
   Telef. 991935157
1024D/B23B24A4
5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/