Discussion:
[tryton-es] error al importar: UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 22: ordinal not in range(128)
David Garcia
2017-04-03 10:38:57 UTC
Permalink
Buenas, al intentar importar un archivo csv de productos a través del
cliente tryton, me lanza este error. La información completa que devuelve
tryton, está más abajo.

He buscado información sobre el error y he encontrado notificaciones
antiguas de bugs en ingles que entiendo solo parcialmente,
ya que no soy desarrollador y no estoy familiarizado con lo que comentan.
Entiendo que quizá sea un error con algún carácter que no reconoce, y poco
más.


Traceback (most recent call last):
File "/dist-packages/trytond/wsgi.py", line 47, in dispatch_request
return endpoint(request, **request.view_args)
File "/dist-packages/trytond/protocols/dispatcher.py", line 59, in rpc
request, database_name, *request.params)
File "/dist-packages/trytond/wsgi.py", line 39, in auth_required
return wrapped(*args, **kwargs)
File "/dist-packages/trytond/protocols/dispatcher.py", line 40, in wrapper
return func(request, pool, *args, **kwargs)
File "/dist-packages/trytond/protocols/dispatcher.py", line 201, in
_dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/dist-packages/trytond/model/modelstorage.py", line 751, in
import_data
process_lines(data, [], fields_def)
File "/dist-packages/trytond/model/modelstorage.py", line 697, in
process_lines
res = get_many2many(this_field_def['relation'], value)
File "/dist-packages/trytond/tools/misc.py", line 159, in wrapper
res = fct(*args)
File "/dist-packages/trytond/model/modelstorage.py", line 574, in
get_many2many
quoting=csv.QUOTE_NONE, escapechar='\\').next():
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in
position 22: ordinal not in range(128)

Me cuesta encontrar info sobre este problema (quizá no he buscado bien o no
he acabado de entender las soluciones que he encontrado),
así que dejo aquí este hilo por si alguien puede aportar alguna solución u
orientación sobre el tema.

Cualquier ayuda es bienvenida.

Un saludo. ;)
Sergi Almacellas Abellana
2017-04-03 10:42:33 UTC
Permalink
Buenas, al intentar importar un archivo csv de productos a través del
cliente tryton, me lanza este error. La información completa que
devuelve tryton, está más abajo.
He buscado información sobre el error y he encontrado notificaciones
antiguas de bugs en ingles que entiendo solo parcialmente,
ya que no soy desarrollador y no estoy familiarizado con lo que
comentan. Entiendo que quizá sea un error con algún carácter que no
reconoce, y poco más.
File "/dist-packages/trytond/wsgi.py", line 47, in dispatch_request
return endpoint(request, **request.view_args)
File "/dist-packages/trytond/protocols/dispatcher.py", line 59, in rpc
request, database_name, *request.params)
File "/dist-packages/trytond/wsgi.py", line 39, in auth_required
return wrapped(*args, **kwargs)
File "/dist-packages/trytond/protocols/dispatcher.py", line 40, in wrapper
return func(request, pool, *args, **kwargs)
File "/dist-packages/trytond/protocols/dispatcher.py", line 201, in
_dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/dist-packages/trytond/model/modelstorage.py", line 751, in
import_data
process_lines(data, [], fields_def)
File "/dist-packages/trytond/model/modelstorage.py", line 697, in
process_lines
res = get_many2many(this_field_def['relation'], value)
File "/dist-packages/trytond/tools/misc.py", line 159, in wrapper
res = fct(*args)
File "/dist-packages/trytond/model/modelstorage.py", line 574, in
get_many2many
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in
position 22: ordinal not in range(128)
Me cuesta encontrar info sobre este problema (quizá no he buscado bien o
no he acabado de entender las soluciones que he encontrado),
así que dejo aquí este hilo por si alguien puede aportar alguna solución
u orientación sobre el tema.
Esto es un error porqué no se puede representar en la codificación ascii
algún caracter que contiene tu CSV. Debes modificar la codificación a
utilizar al importar el CSV. Desde la misma ventana donde importas lo
puedes modificar. Si estas trabajando en windows puedes usar:
"iso-8859-15" y sinó prueba con "UTF-8".

Espero que sea de ayuda.

UN saludo,
--
Sergi Almacellas Abellana
www.koolpi.com
Twitter: @pokoli_srk
David Garcia
2017-04-04 12:24:39 UTC
Permalink
Buenas, después de probar varias cosas, sigo sin poder meter los productos.

Explico lo que he hecho hasta ahora, por si se os ocurre que puede ser.

-Parto de un CSV que viene con codificación ISO-8859-1
-Copio los datos y los pego en documento nuevo.
-Guardo ese nuevo documento como utf-8

Me devuelve siempre el mismo error. Investigando un poco he visto que el
carácter que falla (u'xf3') corresponde a "ó"

ó
243
u’\xf3’
\xc3\xb3
\xf3
Latin small o with acute

Esto me desconcierta bastante, porque ya había cargado en tryton
previamente más CSV's con ese carácter (ó), de hecho, varios de los nombres
de las categorías de producto lo llevan.

No se si es que a la hora de trabajar con el CSV he hecho algo mal, pero
ahí estoy.

Voy a seguir trasteando, si encuentro la respuesta, la posteo, pero no se
porque me da que estoy cometiendo algún error de bulto. Si a alguien se le
ocurren soluciones, como no usar acentos, puedo probar, el tema con esto
último es que ya he probado de cambiar el carácter que falla (ó) por este
otro (o), y sigue dando el mismo fallo.

Un saludo;)
David Garcia
2017-04-04 15:10:58 UTC
Permalink
Por descartar, he cambiado la codificación por defecto de phyton de ascii a
utf-8 sin mejoras, mismo fallo exactamente.
David Garcia
2017-04-04 16:54:05 UTC
Permalink
Pues no llegué a cambiar la codificación por defecto, al comprobarlo en
consola, seguía "ascii".

Voy a darle más vueltas al archivo csv, de momento supongo que debe ser un
error de mi archivo, porque el resto de csv's que importé con las
categorías de producto, no me dieron problemas de este tipo.
Post by David Garcia
Por descartar, he cambiado la codificación por defecto de phyton de ascii
a utf-8 sin mejoras, mismo fallo exactamente.
Loading...