Llevo tiempo buscando la solución y no soy capaz. El problema es este:
BME.MC
Bolsas y Mercados Españoles
Traceback (most recent call last):
File "extraer_datos.py", line 80, in <module>
archivo_configuracion.write("set title '%s (%s)'\n"
%( Nombre_Valor,id,))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in
position 33: ordinal not in range(128)
Los datos los saco de una base de datos y tiene el formato Español, con
eñes y acentos, etc..
Pero al ejecutar este script, me tira el error y separa. ¿Qué hago mal.?
Gracias por vuestra ayuda.
_______________________________________________
Python-es mailing list
Pyth...@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
En caso de que no hayas declarado la codificacion del script,
cualquier letra con tilde, o eñe dará un error y provocará que el
script se detenga.
Es mas, el problema de los acentos no es de python, si no de la gente
que no usa unicode.
Como bieno se dijo en la primera respuesta, mirate la codificacion de
tu script python... la otra opcion es mirar la codificacion de
caracteres de tus variables y donde lo insertas, son muchas las
posibilidades...
Un saludo.
Andrei.
El día 27 de febrero de 2011 21:36, miguel zamora m.
<mzm...@gmail.com> escribió:
--
http://twitter.com/andsux
http://www.niwi.be
****
http://www.freebsd.org/
http://www.postgresql.org/
http://www.python.org/
http://www.djangoproject.com/
"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
Gracias.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Espero que solucione tu problema ya que es debido a que estás usando
caracteres no unicode en tu script
quizá en comentarios o en print's, caracteres como la ñ o tildes.
saludOS
--
lopz es libre, usa --> GNU/linux gentoo
+--[RSA 2048]--+
| ..o.o=+ |
| o =o*.+ |
| . . *oO . |
| .EBoo |
| o.S |
+--[lopz.org]--+
id ->TEF.MC
Nombre_Valor-> Telefónica de España
Traceback (most recent call last):
File "extraer_datos.py", line 85, in <module>
archivo_configuracion.write("set title '%s (%s)'\n" %
( Nombre_Valor, id,))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in
position 16: ordinal not in range(128)
S2.
archivo_configuracion.write("set title '%s (%s)'\n" %(
Nombre_Valor.encode('utf-8'),id,))
o también en dos pasos:
content = "set title '%s (%s)'\n" %( Nombre_Valor, id,)
archivo_configuracion.write(content.encode('utf-8'))
-- lm
# -*- coding: cp1252 -*-
Saludos
Juande
Los temas de encoding de tus ficheros fuente, se resuelven como bien
te han comentado Juan, lopz y Oscar (no sé si me he dejado a alguien).
Pero, si lees/escribes datos desde fichero, te toca la hacer como te
han explicado Raúl, Luis, Andrey (y seguro que se me escapa otro).
Para facilitarte la vida, puedes usar el módulo "codecs". He intentado
reproducir tu ejemplo, con este código:
# -*- coding: utf-8 -*-
from codecs import open
INPUT_ENCODING = 'cp1252'
OUTPUT_ENCODING = 'utf-8'
with open('input.dat', 'rb', INPUT_ENCODING) as infile:
with open('output.dat', 'wb', OUTPUT_ENCODING) as outfile:
while True:
inline = infile.readline()
if not inline:
break
outline = u"set title '%s (%s)'" % tuple(inline.split('\t'))
outfile.write(outline)
# EOF
Fíjate que estoy usando el "open" del módulo "codecs" no el built-in
de Python (en mi caso Python 2.7.1). También debes fijarte en que los
valores INPUT_ENCODING y OUTPUT_ENCODING, son arbitrarios: he creado
un fichero de datos de entrada (input.dat) con encoding cp1252 (el de
Windoze de toda la vida), y a partir de allí, genero un fichero de
salida (output.dat) con encoding UTF-8 (el de Linux desde hace un
tiempo pa'ca ;-). Debes ajustarlo a tus necesidades.
Saludos,
Antonio
PD: Mola el tema en el que estás medido... el de los *.MC, no el de
los encodings!
2011/2/27 Juan de Dios Manjon Perez <jua...@jdmanjon.net>:
No funciona de ninguna manera. ¿Debo declarar la variable Nombre_Valor
de alguna manera.?
Esta variable la asigno así:
for ids in resultado:
id= ids[ 0]
print id
cursor.execute( "select id, Nombre from cotizaciones_valores where
identidicador = ?", (id, ))
resultado= cursor.fetchone()
id_Valor= resultado[ 0]
Nombre_Valor= resultado[ 1]
S2.
He intentado utilizar tu código pero me da errores igualmente.
He adjuntado a pastebin el código completo, si alguien me puede
ayudar...
S2
Bueno, lo puedes solucionar de esta manera
self.db.execute(SQL_STRING, (dork.decode('utf-8'), ))
Eso aplicas el momento de insertar tus datos o hacer un update.
Espero que te solucione el problema
saludOS
--
lopz es libre, usa --> GNU/linux gentoo
+--[RSA 2048]--+
| ..o.o=+ |
| o =o*.+ |
| . . *oO . |
| .EBoo |
| o.S |
+--[lopz.org]--+
El Mon, 28 Feb 2011 20:08:15 +0100
Jesús Genicio <jgen...@gmail.com> dijo:
>
> He intentado utilizar tu código pero me da errores igualmente.
>
> He adjuntado a pastebin el código completo, si alguien me puede
> ayudar...
>
> http://pastebin.com/x3DFTkjD
>
Hola Jesus:
¿En la linea 25 de tu código type(resultado[ 1]) que devuelve ??
Saludos
Dr. Bobus
- --
[In 'Doctor' mode], I spent a good ten minutes telling Emacs what I
thought of it. (The response was, 'Perhaps you could try to be less
abusive.')
(Matt Welsh)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
iEYEARECAAYFAk1sFm8ACgkQVO2xr8e6gc5EtQCcCvB5TeeQUekZBFFSiBet2sfY
FmcAniMSpzChi92K2MKR7Vi40pcoToP/
=fs0E
-----END PGP SIGNATURE-----
ABE.MC
Salida de nombre ->>[<type 'unicode'>]
Llamando a subproceso GnuPlot
set title '<type 'unicode'> (ABE.MC)'
^
S2.
[1] http://docs.python.org/library/sqlite3.html#sqlite3.Connection.text_factory
El día 28 de febrero de 2011 19:41, gerardo Juarez
<gerard...@buyteknet.info> escribió:
--
lopz es libre, usa --> GNU/linux gentoo
+--[RSA 2048]--+
| ..o.o=+ |
| o =o*.+ |
| . . *oO . |
| .EBoo |
| o.S |
+--[lopz.org]--+
No he pasado, solo es que no tengo muchi tiempo, lo estoy intentando y
os agradezco la ayuda. En cuanto tenga resultados, os comento.
Muchas gracias compañeros.
unicode("la cadena").encode("utf-8")
Saludos!
Gustavo.-
--
Linux es Libertad
self.db.execute(SQL_STRING, (dork.decode('utf-8'), ))
Me pasó lo mismo, por eso te lo puse, pero que bueno que lo resolviste
> _______________________________________________
> Python-es mailing list
> Pyth...@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]--+
¿Realmente es lo mismo.?
self.db.execute(SQL_STRING, (dork.decode('utf-8'), ))
unicode("la cadena").encode("utf-8")
S2.