[Python-es] Problema en string

2014-08-13 Por tema Jean Carlos Rodrìguez
Buenas tardes, les comento un problema que tengo, necesito guardar en base de 
datos una descripcion que dentro tiene el caracter " , estos los tomo de una 
archivo de texto, el problema que tengo es que al trata de guardar en base de 
datos este me da un error, porque la cadena la cierra cuando consigue el 
caracter ",

en el archivo txt
1

distancia recorrida 3' 2"

leo las lineas y se que para linea 1 es id y linea 2 desc

query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}") 
""".format(1,desc)) 


pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he 
tratado haciendo para combinaciones y nada, si alguie ha tenido un error asi, o 
hay una manera de resolverlo mas facil, y no rebentarme la cabeza se lo 
agradeceria.

Los valores los tomo como string desde el archivo

Python 2.7___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Manuel A. Estevez Fernandez
Necesitas colocar el caracter de escape correspondiente, usualmente es \.

Lo que pasa es que la db cuando intenta insertar el campo se encuentra con
la siguiente cadena:

"distancia recorrida 3' 2""

debes cambiarlo por esto:

"distancia recorrida 3' 2[caracter de escape]""

Saludos.


by:

ISC. Manuel Alejandro Estévez Fernández



El 13 de agosto de 2014, 12:08, Jean Carlos Rodrìguez <
jeancarlosr...@yahoo.com.dmarc.invalid> escribió:

> Buenas tardes, les comento un problema que tengo, necesito guardar en base
> de datos una descripcion que dentro tiene el caracter " , estos los tomo de
> una archivo de texto, el problema que tengo es que al trata de guardar en
> base de datos este me da un error, porque la cadena la cierra cuando
> consigue el caracter ",
>
> en el archivo txt
> 1
> distancia recorrida 3' 2"
>
> leo las lineas y se que para linea 1 es id y linea 2 desc
>
> query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}")
> """.format(1,desc))
>
> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he
> tratado haciendo para combinaciones y nada, si alguie ha tenido un error
> asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se
> lo agradeceria.
>
> Los valores los tomo como string desde el archivo
>
> Python 2.7
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Jean Carlos Rodrìguez
Muchas gracias de ahi tengo un punto de partida, aunque no igual sigue el error 
porque no me reemplaza el caracter, seguire leyendo

Ah Jorge perdon uso MariaDB



El Miércoles, 13 de agosto, 2014 12:43 P.M., Jorge Araya Navarro 
 escribió:
 



No seria conveniente también usar SQLAlchemy, tal vez tu proyecto sea un
proyecto pequeño y estés usando una base de datos en SQLite, pero te
podrías ahorrar este tipo de cosillas!

Si aun así deseas seguir por donde va tu proyecto, entonces te
recomiendo que implementes una función que te devuelva una cadena
saneada, algo tipo lo siguiente:

         def sanear(cadena):
             return cadena.replace('"', '\"')


Jean Carlos Rodrìguez writes:

> Buenas tardes, les comento un problema que tengo, necesito guardar en base de 
> datos una descripcion que dentro tiene el caracter " , estos los tomo de una 
> archivo de texto, el problema que tengo es que al trata de guardar en base de 
> datos este me da un error, porque la cadena la cierra cuando consigue el 
> caracter ",
>
> en el archivo txt
> 1
>
> distancia recorrida 3' 2"
>
> leo las lineas y se que para linea 1 es id y linea 2 desc
>
> query_exec("""INSERT INTO table (id, desc) VALUES ({0},"{1}") 
> """.format(1,desc)) 
>
>
> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he 
> tratado haciendo para combinaciones y nada, si alguie ha tenido un error asi, 
> o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se lo 
> agradeceria.
>
> Los valores los tomo como string desde el archivo
>
> Python 2.7___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/

-- 
Pax et bonum.\nJorge Araya Navarro.\nDiseñador Publicitario, Programador Python 
y colaborador en Parabola GNU/Linux-libre\nhttps://es.gravatar.com/shackra___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Daπid
2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez <
jeancarlosr...@yahoo.com.dmarc.invalid>:

>
> query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}")
> """.format(1,desc))
>
> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he
> tratado haciendo para combinaciones y nada, si alguie ha tenido un error
> asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se
> lo agradeceria.
>

Python puede parsear esa expresión sin problemas. Las triples comillas
hacen que cuando sólo hay una, sea ignorada. El problema está en la base de
datos. Mi primera idea sería averiguar si esos caracteres están soportados,
y si lo están, cómo se escapan.

¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.


/David.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Jean Carlos Rodrìguez
Obtengo el famoso error 1064, error de sintaxis



El Miércoles, 13 de agosto, 2014 3:52 P.M., Daπid  
escribió:
 




2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez 
:


>
>query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}") 
>""".format(1,desc)) 
>
>
>
>pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he 
>tratado haciendo para combinaciones y nada, si alguie ha tenido un error asi, 
>o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se lo 
>agradeceria.

Python puede parsear esa expresión sin problemas. Las triples comillas hacen 
que cuando sólo hay una, sea ignorada. El problema está en la base de datos. Mi 
primera idea sería averiguar si esos caracteres están soportados, y si lo 
están, cómo se escapan.

¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.



/David.___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Ander Garmendia
¿Que librería / driver estás utilizando para conectarte a la  base de datos?

Mira la documentación para ver si la librería te ofrece un método con
binding de parámetros y olvídate tu de formatear el string a ejecutar.
 El 13/08/2014 23:06, "Jean Carlos Rodrìguez"
 escribió:

> Obtengo el famoso error 1064, error de sintaxis
>
>
>   El Miércoles, 13 de agosto, 2014 3:52 P.M., Daπid 
> escribió:
>
>
>
> 2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez <
> jeancarlosr...@yahoo.com.dmarc.invalid>:
>
>
> query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}")
> """.format(1,desc))
>
> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he
> tratado haciendo para combinaciones y nada, si alguie ha tenido un error
> asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se
> lo agradeceria.
>
>
> Python puede parsear esa expresión sin problemas. Las triples comillas
> hacen que cuando sólo hay una, sea ignorada. El problema está en la base de
> datos. Mi primera idea sería averiguar si esos caracteres están soportados,
> y si lo están, cómo se escapan.
>
> ¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.
>
>
> /David.
>
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Jhonatan Sneider Salguero Villa
error, es:

cur.execute("INSERT INTO table (id, desc) VALUES  (?,?)", (1, desc))


El 13 de agosto de 2014, 16:15, Ander Garmendia 
escribió:

> ¿Que librería / driver estás utilizando para conectarte a la  base de
> datos?
>
> Mira la documentación para ver si la librería te ofrece un método con
> binding de parámetros y olvídate tu de formatear el string a ejecutar.
>  El 13/08/2014 23:06, "Jean Carlos Rodrìguez"
>  escribió:
>
>>  Obtengo el famoso error 1064, error de sintaxis
>>
>>
>>   El Miércoles, 13 de agosto, 2014 3:52 P.M., Daπid <
>> davidmen...@gmail.com> escribió:
>>
>>
>>
>> 2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez <
>> jeancarlosr...@yahoo.com.dmarc.invalid>:
>>
>>
>> query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}")
>> """.format(1,desc))
>>
>> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he
>> tratado haciendo para combinaciones y nada, si alguie ha tenido un error
>> asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se
>> lo agradeceria.
>>
>>
>> Python puede parsear esa expresión sin problemas. Las triples comillas
>> hacen que cuando sólo hay una, sea ignorada. El problema está en la base de
>> datos. Mi primera idea sería averiguar si esos caracteres están soportados,
>> y si lo están, cómo se escapan.
>>
>> ¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.
>>
>>
>> /David.
>>
>>
>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Jean Carlos Rodrìguez
Perdon por la demas informacion que falto, la conexion la hago con PyQt4 
(QtSql), aunque por ahora logre resolver de la manera mas cruel reemplaze el " 
por (plg) y luego hago los reverso en las busqueda, se que no es una solucion, 
pero por ahora para mi si lo es, hasta que pueda revisar bien la documentacion.

Si logro conseguir una solucion les informare.




El Miércoles, 13 de agosto, 2014 4:18 P.M., Jhonatan Sneider Salguero Villa 
 escribió:
 


error, es:

cur.execute("INSERT INTO table (id, desc) VALUES  (?,?)", (1, desc))




El 13 de agosto de 2014, 16:15, Ander Garmendia  escribió:

¿Que librería / driver estás utilizando para conectarte a la  base de datos?
>  
>Mira la documentación para ver si la librería te ofrece un método con binding 
>de parámetros y olvídate tu de formatear el string a ejecutar. 
>
>El 13/08/2014 23:06, "Jean Carlos Rodrìguez" 
> escribió:
>
>Obtengo el famoso error 1064, error de sintaxis
>>
>>
>>
>>
>>El Miércoles, 13 de agosto, 2014 3:52 P.M., Daπid  
>>escribió:
>> 
>>
>>
>>
>>
>>2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez 
>>:
>>
>>
>>>
>>>query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}") 
>>>""".format(1,desc)) 
>>>
>>>
>>>
>>>pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he 
>>>tratado haciendo para combinaciones y nada, si alguie ha tenido un error 
>>>asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se 
>>>lo agradeceria.
>>
>>Python puede parsear esa expresión sin problemas. Las triples comillas hacen 
>>que cuando sólo hay una, sea ignorada. El problema está en la base de datos. 
>>Mi primera idea sería averiguar si esos caracteres están soportados, y si lo 
>>están, cómo se escapan.
>>
>>¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.
>>
>>
>>
>>
>>/David.
>>
>>
>>
>>
>>
>>___
>>Python-es mailing list
>>Python-es@python.org
>>https://mail.python.org/mailman/listinfo/python-es
>>FAQ: http://python-es-faq.wikidot.com/
>>
>>
>>
>
>___
>Python-es mailing list
>Python-es@python.org
>https://mail.python.org/mailman/listinfo/python-es
>FAQ: http://python-es-faq.wikidot.com/
>
>


___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema en string

2014-08-13 Por tema Jhonatan Sneider Salguero Villa
El método execute permite pasar los parámetros de la consulta como
argumentos, con lo cual es la misma base de datos que se encarga de escapar
los datos.

con sqlite3 seria algo como lo siguiente (aunque vale para otras base de
datos)

import sqlite3

con = sqlite3.connect("base_datos")
cur = con.cursor()
*cur.execute("INSERT INTO table (id, desc) VALUES  (?,?)", 1, desc)*



*https://docs.python.org/2/library/sqlite3.html#sqlite3.Cursor.execute
*

Jhonatan.


El 13 de agosto de 2014, 15:51, Daπid  escribió:

>
> 2014-08-13 19:08 GMT+02:00 Jean Carlos Rodrìguez <
> jeancarlosr...@yahoo.com.dmarc.invalid>:
>
>
>> query_exec("""INSERT INTO table (id, desc) VALUES  ({0},"{1}")
>> """.format(1,desc))
>>
>> pero cuando lee el caracter " de pulgadas lo cierra y me da error, ya he
>> tratado haciendo para combinaciones y nada, si alguie ha tenido un error
>> asi, o hay una manera de resolverlo mas facil, y no rebentarme la cabeza se
>> lo agradeceria.
>>
>
> Python puede parsear esa expresión sin problemas. Las triples comillas
> hacen que cuando sólo hay una, sea ignorada. El problema está en la base de
> datos. Mi primera idea sería averiguar si esos caracteres están soportados,
> y si lo están, cómo se escapan.
>
> ¿Cuál es el mensaje de error? Ayuda mucho, siempre conviene ponerlo.
>
>
> /David.
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/