[Python-es] Problemas de encoding json utf-8

Andrey Antukh niwi en niwi.be
Mie Mar 20 20:40:30 CET 2013


Modulo json fue incorporado en python 2.6 tomando como codigo base
simplejson.
La regla principal, es usar siempre siempre y siempre, unicode (sea con
UTF-8, UTF-16 o UTF-32) (para nuestro caso es utf-8).
Y no habra problemas. Si no cuidas el encoding con el que editas los
ficheros, pueden pasarte esas cosas.

Usar un modulo externo y decir que es una solucion al problema, lo unico
que dice es que el problema sigue ahi, y que el modulo que usas traga mas
mierda y sea menos estricto, pero de ninguna manera te ha solucionado el
problema de encoding.

>>> import json
>>> kk = u"cadená con tìldes"
>>> dd = json.dumps({"foo": kk})
>>> dd
'{"foo": "caden\\u00e1 con t\\u00ecldes"}'
>>> print json.loads(dd)
{u'foo': u'caden\xe1 con t\xecldes'}
>>> print json.loads(dd)['foo']
cadená con tìldes

Un saludo.
Andrey


El 20 de marzo de 2013 20:29, Flavio Danesse <fdanesse en gmail.com> escribió:

> yo tuve el mismo problema que él y esta fue la solución.
>
> La verdad no sabia que json era de python y simplejson no.
>
> El 20 de marzo de 2013 16:20, Andrey Antukh <niwi en niwi.be> escribió:
>
> El 20 de marzo de 2013 19:53, Flavio Danesse <fdanesse en gmail.com>escribió:
>>
>>> import simplejson
>>> archivo = open(path, 'w')
>>> archivo.write(simplejson.dumps(salida))
>>> archivo.close()
>>>
>>>
>> No entiendo la necesidad de liar a una persona con bibliotecas
>> que están fuera de python, cuando la pregunta va directa sobre un modulo de
>> python.
>>
>>
>>
>>>
>>> El 20 de marzo de 2013 15:35, Diego Uribe Gamez <
>>> diego.uribe.gamez en gmail.com> escribió:
>>>
>>> estoy usando nano,
>>>>
>>>> para lo que me pregunto quique:
>>>>
>>>> print u"%s" % var
>>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xf3 in position
>>>> 53: ordinal not in range(128)
>>>>
>>>> lo que sucede es que var biene de otro archivo y es un string, no logro
>>>> codificarlo.
>>>>
>>>>
>>>>
>>>> El 20 de marzo de 2013 13:33, Alberto Chamorro <
>>>> a.chamorro.ruiz en gmail.com> escribió:
>>>>
>>>> Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas?
>>>>>  On Mar 20, 2013 7:12 PM, "Quique Porta" <quiqueporta en gmail.com>
>>>>> wrote:
>>>>>
>>>>>> ¿Has probado esto?
>>>>>> var = *u*"texto con tildes, Categorías "
>>>>>>
>>>>>> poniendo la "u" delante de la cadena
>>>>>>
>>>>>> El 20 de marzo de 2013 18:56, Diego Uribe Gamez <
>>>>>> diego.uribe.gamez en gmail.com> escribió:
>>>>>>
>>>>>>> tan raro yo no sabia y tampoco entiendo:
>>>>>>>
>>>>>>> file texto.py
>>>>>>> texto.py: ASCII Java program text
>>>>>>>
>>>>>>> sobre el encabezado esta el # -*- coding: utf-8 -*- correctamente
>>>>>>>
>>>>>>> Como hago para saber con un print el tipo de codificación antes de
>>>>>>> hacer el encode('utf-8')?
>>>>>>>
>>>>>>>
>>>>>>> El 20 de marzo de 2013 12:25, Alberto Chamorro <
>>>>>>> a.chamorro.ruiz en gmail.com> escribió:
>>>>>>>
>>>>>>>> Si lo tienes en un fichero .py comprueba la codificacion con la que
>>>>>>>> has guardado el fichero (en unix seria con el comando file)
>>>>>>>>
>>>>>>>> Tambien se recomienda añadir a los programas la linea de coding:
>>>>>>>>
>>>>>>>> # -*- coding: utf-8 -*-
>>>>>>>>
>>>>>>>> Un saludo
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Python-es mailing list
>>>>>>>> Python-es en python.org
>>>>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>   *Diego Alonso Uribe Gamez*
>>>>>>> ------------------------------
>>>>>>>
>>>>>>> *Desarrollador web*
>>>>>>>
>>>>>>> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>>>>>>>
>>>>>>> Google+: http://gplus.to/diegoug
>>>>>>> ------------------------------
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Python-es mailing list
>>>>>>> Python-es en 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/
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>   *Diego Alonso Uribe Gamez*
>>>> ------------------------------
>>>>
>>>> *Desarrollador web*
>>>>
>>>> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>>>>
>>>> Google+: http://gplus.to/diegoug
>>>> ------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en 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/
>>>
>>>
>>
>>
>> --
>> Andrey Antukh - Андрей Антух - <niwi en niwi.be>
>> http://www.niwi.be/about.html
>> http://www.kaleidos.net/A5694F/
>>
>> "Linux is for people who hate Windows, BSD is for people who love UNIX"
>> "Social Engineer -> Because there is no patch for human stupidity"
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en 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/
>
>


-- 
Andrey Antukh - Андрей Антух - <niwi en niwi.be>
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130320/3f550890/attachment.html>


Más información sobre la lista de distribución Python-es