[Python-es] 'int' does not support the buffer interface
marmolro
marmolro en gmail.com
Lun Feb 21 21:07:52 CET 2011
Buenas!
ese es el mensaje, no la excepción :) Añade un "raise" al final del bloque
except: y se ve el traceback y la excepción.
Respecto al finally echa un ojo a:
http://docs.python.org/tutorial/errors.html#defining-clean-up-actions
simplemente para ver que se ejecuta *siempre*, con independencia de si saltó
la excepción o no....
Un saludo,
Marc
2011/2/21 Spectrum Cuarenta y ocho k <s_48k en yahoo.com>
> La excepción está en el título:
>
> 'int' does not support the buffer interface
>
> --- On *Mon, 2/21/11, marmolro <marmolro en gmail.com>* wrote:
>
>
> From: marmolro <marmolro en gmail.com>
> Subject: Re: [Python-es] 'int' does not support the buffer interface
> To: "La lista de python en castellano" <python-es en python.org>
> Date: Monday, February 21, 2011, 7:51 PM
>
>
> Buenas!
>
> en el correo
>
> 2011/2/21 Spectrum Cuarenta y ocho k <s_48k en yahoo.com<http://mc/compose?to=s_48k@yahoo.com>
> >
>
> Hola:
> Si te fijas tengo el commit dentro de un if(cur), de esa manera, si el
> cursor, que es lo que tengo detro del try, falla, no se crearía el cur y por
> lo tanto tampoco se haría el commit()
>
> Realmente el cursor se crea con conn.cursor(), que está fuera del try, con
> lo que el if(cur) es inocuo. De todas formas, compruebas su creación, no su
> estado..
>
>
> ¿Porqué dices lo del 'except Exception' por ser demasiado general?
>
>
> Sí, demasiado general... como el comentario mio ;). En este caso yo
> prefiero que me salte la excepción hasta afuera con toda la información
> (¿que excepción es?¿cual es su traceback?)...
>
>
> Lo único que estoy utilizando es el módulo PyMySQL (porque fue el primero
> que encontré para python 3) de resto nada especial, leo unas cadenas de un
> fichero, y se las paso al la función que les he puesto.
>
>
> pega el traceback y la excepción así podemos ver por donde se queja (este
> módulo creo que era 100% python, así que en principio nada que ver con
> wrappers... ¿o sí?)
>
>
> Ahí estoy mirando en San Google a ver que ponen de la excepción, pero hay
> poquito, aunque tiene toda la pinta a ser algo de buffers como tú apuntas.
>
> Gracias.
>
>
>
> --- On *Mon, 2/21/11, marmolro <marmolro en gmail.com<http://mc/compose?to=marmolro@gmail.com>
> >* wrote:
>
>
> From: marmolro <marmolro en gmail.com<http://mc/compose?to=marmolro@gmail.com>
> >
>
> Subject: Re: [Python-es] 'int' does not support the buffer interface
> To: "La lista de python en castellano" <python-es en python.org<http://mc/compose?to=python-es@python.org>
> >
> Date: Monday, February 21, 2011, 4:31 PM
>
>
> Buenas!
>
> Es un error extraño, generalmente relacionado con buffers y el wrapping de
> c/c++ ... si nos das más datos sobre lo que utilizas igual suena más.
> Seguramente la excepción es inocua ya que te deja hacer el commit y te lo
> deja hacer bien, pero mejor investigar :)
>
> Varios apuntes:
>
> - Hacer un except Exception siempre es mala idea :)
> - El finally se ejecutará siempre, por lo que al hacer ahí el commit te
> arriesgas a hacerlo sobre un "bloque" que ha generado excepción.
> Casualmente, a ti te ha funcionado, pero no es lo habitual.
>
>
>
>
> 2011/2/21 Spectrum Cuarenta y ocho k <s_48k en yahoo.com<http://mc/compose?to=s_48k@yahoo.com>
> >
>
> Hola gente, he hecho un programa para insertar registros en una BD. Son
> bastantes, y lo estoy haciendo por tramos de 20.000 más o menos (de forma
> individual, vamos que hago correr el script cada 20000). El caso, es que
> funciona bastante bien, pero cuando llevo 3 o 4 partes, sigue funcionando...
> pero se salta el try. Me explico, inserta el registro,imprime el OK, pero
> también me ejecuta lo que está dentro del try y pone este error: 'int' does
> not support the buffer interface.
> Por lo tanto, sigue realizando su función pero enseña el error. Si reinicio
> el ordenador y vuelvo a ejecutarlo (exactamente el mismo código) ya no da el
> error. Me da la impresión que es algún buffer de python.
>
> ¿a alguien le suena algo de esto o parecido?
>
>
>
> Venga, un saludo.
>
> def insertar(autor, texto):
> query = "INSERT INTO famous_quote (text, author) VALUES (\"%s\",
> \"%s\")" % (texto, autor)
> curs = conn.cursor()
> try:
> curs.execute(query)
> except Exception as errr:
> print("mesaje del fallo: " + str(errr))
> print("Fallo en: " + query)
> pass
> finally:
> if(curs):
> curs.close()
> conn.commit()
> print("OK!")
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org <http://mc/compose?to=Python-es@python.org>
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> -----Inline Attachment Follows-----
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org <http://mc/compose?to=Python-es@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 <http://mc/compose?to=Python-es@python.org>
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org <http://mc/compose?to=Python-es@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
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110221/d5638b9a/attachment.html>
Más información sobre la lista de distribución Python-es