Es muy simple:
>>> import io
>>> import json
>>> kk = {str(x):u"kákà" for x in range(1000)}
>>> with io.open("foo.json", "wb") as f:
... json.dump(kk, f)
...
>>>
>>> with io.open("foo.json", "rb") as f:
... kk2 = json.load(f)
...
>>> len(kk2.keys())
1000
>>> kk2[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>> print kk2["1"]
kákà
Andrey
El 20 de marzo de 2013 20:52, Flavio Danesse <[email protected]> escribió:
> ok
>
> Esto funciona para guardar una cadena con tildes, pero que pasa si en tu
> aplicación tienes un diccionario bien grande con diccionarios, listas, etc
> . . . anidados y quieres guardarlo todo y de una en un json?
>
>
>
> El 20 de marzo de 2013 16:40, Andrey Antukh <[email protected]> escribió:
>
> 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 <[email protected]>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 <[email protected]> escribió:
>>>
>>> El 20 de marzo de 2013 19:53, Flavio Danesse <[email protected]>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 <
>>>>> [email protected]> 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 <
>>>>>> [email protected]> escribió:
>>>>>>
>>>>>> Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas?
>>>>>>> On Mar 20, 2013 7:12 PM, "Quique Porta" <[email protected]>
>>>>>>> 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 <
>>>>>>>> [email protected]> 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 <
>>>>>>>>> [email protected]> 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
>>>>>>>>>> [email protected]
>>>>>>>>>> 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
>>>>>>>>> [email protected]
>>>>>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Python-es mailing list
>>>>>>>> [email protected]
>>>>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>>>
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Python-es mailing list
>>>>>>> [email protected]
>>>>>>> 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
>>>>>> [email protected]
>>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> [email protected]
>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Andrey Antukh - Андрей Антух - <[email protected]>
>>>> 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
>>>> [email protected]
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> [email protected]
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> Andrey Antukh - Андрей Антух - <[email protected]>
>> 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
>> [email protected]
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
--
Andrey Antukh - Андрей Антух - <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/