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

Flavio Danesse fdanesse en gmail.com
Jue Mar 21 01:12:58 CET 2013


ok, gracias.

Sobre como codificar el diccionario entero antes de mandarlo al json, yo
pensé que se podía hacer utilizando json.JSONEncoder



El 20 de marzo de 2013 20:59, Andrey Antukh <niwi en niwi.be> escribió:

>
> El 21 de marzo de 2013 00:47, Flavio Danesse <fdanesse en gmail.com>escribió:
>
>> Bien.
>>
>> Ya que estoy, te hago otra pregunta:
>>
>> En este caso el diccionario lo armé yo entonces puedo controlar eso, pero
>> que pasa cuando mi aplicación recibe el diccionario externamente y no si
>> siquiera como está codificado ?
>>
>> El procedimiento sería:
>>
>>    1. Detectar la codificación que trae (¿Cómo?)
>>
>> En python2 esto es el problema de cada dia, con python3 eso no pasa.
> Tienes que confiar que si recibes esos datos, si tienen acentos, deberian
> mandarte o cadenas unicode (con u delante) o bytestrings codificados en
> utf-8. En este caso, mi recomendacion, es pasalos a unicode y siempre
> trabajar con unicode (Eso conllevaria hacer "some
> bytestring".decode('utf-8'))
>
>
>>
>>    1. Y Decodificarlo. (se soluciona fácil respondiendo la pregunta
>>    anterior).
>>
>> A parte:
>> ¿Qué hace exactamente la linea?: from __future__ import unicode_literals
>>
>
> Hace que las cadenas "" que por de fecto en python2 son bytestring sean
> automaticamente cadenas unicode (es decir u""), basicamente te acerca mas a
> como trabajarias con python3.
>
> Es por asi decirlo, modo de compatibilidad, para que, puedas desarrollar
> aplicaciones que corran sin modificar el codigo en python2 y python3.
>
> Andrey
>
>>
>>
>> El 20 de marzo de 2013 20:41, Andrey Antukh <niwi en niwi.be> escribió:
>>
>> Bien, parece que estaba en lo cierto, lo que me has mostrado ya era JSON,
>>> y viendo tu codigo. Confirma lo que ya dije en su principio. simplejson
>>> convierte a unicode automaticamente los bytestring, lo que quiere decir que
>>>  es menos estricto y mas magico.
>>>
>>> Ahora, respondiendo a tu pregunta: define el diccionario bien, y pon una
>>> u delante de cada cadena cadena de texto y entonces el modulo builtin no
>>> dara ningun fallo, ya que le habras indicado un diccionario con datos
>>> validos.
>>> O como opcion practica pero no del todo recomendada, pon en principio de
>>> tu fichero: from __future__ import unicode_literals
>>>
>>> Como bien dije al principio, en tu caso simplejson solo te esta
>>> ocultando el problema pero no solucionando, tu problema inicial no es que
>>> el modulo json builtin no te lo guarde si no que tu diccionario contiene
>>> cadenas unicode sin especificar que son unicode. No es cuestion de
>>> recorrerlo, es cuestion de hacerlo bien desde principio.
>>>
>>> Andrey
>>>
>>>
>>> El 21 de marzo de 2013 00:26, Flavio Danesse <fdanesse en gmail.com>escribió:
>>>
>>> Bien.
>>>>
>>>> Ese diccionario está guardado utilizando python 2.7 pero con simplejson
>>>> de la siguiente manera:
>>>>
>>>> diccionario = {
>>>>     "groups": {
>>>>         "0": {
>>>>             "name": "Asistencia",
>>>>             "fields": {
>>>>                 "0": {
>>>>                     "widget_type": "RadioButton",
>>>>                     "name": "¿El Alumno se Encuentra en Clase?",
>>>>                     "dependence": "",
>>>>                     "options":{
>>>>                         "00001": {"text": "Si"},
>>>>                         "00002": {"text": "No"},
>>>>                         }
>>>>                     }
>>>>                 }
>>>>             },
>>>>         "1": {
>>>>             "name": "Datos de XO",
>>>>             "fields": {
>>>>                 "0": {
>>>>                     "widget_type": "DropDownList",
>>>>                     "name": "¿Recibiste en Algún Momento tu XO?",
>>>>                     "dependence": "00001",
>>>>                     "options": {
>>>>                         "00003": {"text": "Si"},
>>>>                         "00004": {"text": "No"}
>>>>                         }
>>>>                 },
>>>>                 "1": {
>>>>                     "widget_type": "DropDownList",
>>>>                     "name": "¿Hoy Trajiste a Clase tu XO?",
>>>>                     "dependence": "00001",
>>>>                      "options": {
>>>>                         "00005": {"text": "Si"},
>>>>                         "00006": {"text": "No"}
>>>>                         }
>>>>                 },
>>>>                 "2": {
>>>>                     "widget_type": "DropDownList",
>>>>                     "name": "¿Cúal es el Estado Actual de tu XO?",
>>>>                     "dependence": "00001",
>>>>                     "options": {
>>>>                         "00007": {"text": "Totalmente Sana"},
>>>>                         "00008": {"text": "Parcialmente Sana"},
>>>>                         "00009": {"text": "No Funciona"}
>>>>                         }
>>>>                     }
>>>>                 }
>>>>             },
>>>>         "2": {
>>>>             "name": "Uso de la XO",
>>>>             "fields": {
>>>>                 "0": {
>>>>                     "widget_type": "MultipleCheckBox",
>>>>                     "name": "¿Para qué Utilizas tu XO?",
>>>>                     "dependence": "00001",
>>>>                     "options":{
>>>>                         "00010": {"text": "Facebook"},
>>>>                         "00011": {"text": "Juegos"},
>>>>                         "00012": {"text": "Estudiar"},
>>>>                         "00013": {"text": "Leer"},
>>>>                         "00014": {"text": "Escuchar Música"},
>>>>                          "00015": {"text": "Ver Videos"},
>>>>                         "00016": {"text": "Grabar videos"},
>>>>                         "00018": {"text": "Sacar Fotos"},
>>>>                         "00019": {"text": "Chatear"},
>>>>                         "00020": {"text": "Programar"},
>>>>                         "00021": {"text": "Editar mi Blog"},
>>>>                         "00022": {"text": "Dibujar"},
>>>>                         "00023": {"text": "Jugar con el Robot"},
>>>>                         "00024": {"text": "Jugar al Ping Pong"},
>>>>                         "00025": {"text": "Pegarle a mi hermano"},
>>>>                         "00026": {"text": "Jugar con el perro"},
>>>>                         "00027": {"text": "Para Nada"}
>>>>                         }
>>>>                     }
>>>>                 }
>>>>             },
>>>>         "3": {
>>>>             "name": "Comentarios",
>>>>              "fields": {
>>>>                 "0": {
>>>>                     "widget_type": "TextInput",
>>>>                     "name": "Comentarios",
>>>>                     "dependence": "00001",
>>>>                     "options": {
>>>>                         "00017": {"text": ""}
>>>>                         }
>>>>                     }
>>>>                 }
>>>>             }
>>>>         }
>>>>     }
>>>>
>>>> archivo = open(path, "w")
>>>> archivo.write(simplejson.dumps(diccionario))
>>>> archivo.close()
>>>>
>>>> *Ahora el tema es:*
>>>> *
>>>> *
>>>> ¿Cómo lo guardas usando json en lugar de simplejson sin iterar por los
>>>> items del diccionario?
>>>>
>>>>
>>>> El 20 de marzo de 2013 20:17, Andrey Antukh <niwi en niwi.be> escribió:
>>>>
>>>> Esto, ya es json valido tal cual.
>>>>>
>>>>> x = JSON.parse('{"groups": {"1": {"fields": {"1": {"widget_type":
>>>>> "DropDownList", "options": {"00005": {"text": "Si"}, "00006": {"text":
>>>>> "No"}}, "name": "\u00bfHoy Trajiste a Clase tu XO?", "dependence":
>>>>> "00001"}, "0": {"widget_type": "DropDownList", "options": {"00004":
>>>>> {"text": "No"}, "00003": {"text": "Si"}}, "name": "\u00bfRecibiste en
>>>>> Alg\u00fan Momento tu XO?", "dependence": "00001"}, "2": {"widget_type":
>>>>> "DropDownList", "options": {"00007": {"text": "Totalmente Sana"}, "00009":
>>>>> {"text": "No Funciona"}, "00008": {"text": "Parcialmente Sana"}}, "name":
>>>>> "\u00bfC\u00faal es el Estado Actual de tu XO?", "dependence": "00001"}},
>>>>> "name": "Datos de XO"}, "0": {"fields": {"0": {"widget_type":
>>>>> "RadioButton", "options": {"00001": {"text": "Si"}, "00002": {"text":
>>>>> "No"}}, "name": "\u00bfEl Alumno se Encuentra en Clase?", "dependence":
>>>>> ""}}, "name": "Asistencia"}, "3": {"fields": {"0": {"widget_type":
>>>>> "TextInput", "options": {"00017": {"text": ""}}, "name": "Comentarios",
>>>>> "dependence": "00001"}}, "name": "Comentarios"}, "2": {"fields": {"0":
>>>>> {"widget_type": "MultipleCheckBox", "options": {"00023": {"text": "Jugar
>>>>> con el Robot"}, "00020": {"text": "Programar"}, "00025": {"text": "Pegarle
>>>>> a mi hermano"}, "00024": {"text": "Jugar al Ping Pong"}, "00021": {"text":
>>>>> "Editar mi Blog"}, "00016": {"text": "Grabar videos"}, "00022": {"text":
>>>>> "Dibujar"}, "00014": {"text": "Escuchar M\u00fasica"}, "00015": {"text":
>>>>> "Ver Videos"}, "00012": {"text": "Estudiar"}, "00013": {"text": "Leer"},
>>>>> "00010": {"text": "Facebook"}, "00011": {"text": "Juegos"}, "00026":
>>>>> {"text": "Jugar con el perro"}, "00027": {"text": "Para Nada"}, "00018":
>>>>> {"text": "Sacar Fotos"}, "00019": {"text": "Chatear"}}, "name": "\u00bfPara
>>>>> qu\u00e9 Utilizas tu XO?", "dependence": "00001"}}, "name": "Uso de la
>>>>> XO"}}}')
>>>>> Object {groups: Object}
>>>>>
>>>>> No se de donde habrás sacado este supuesto diccionario, pero eso es ya
>>>>> json valido, es decir no necesitas volverlo a serializar.
>>>>> Y eso es muy facilmente detectable, si tefijas, "\u00bfHoy Trajiste a
>>>>> Clase tu XO?" esta cadena tiene el primer caracter unicode ya codificado
>>>>> para que javascript pueda interpretarlo bien.
>>>>>
>>>>> Ademas vemos que es una cadena unicode, pero no lleva la u delante, lo
>>>>> que me hace pensar que ya fue serializada una vez o es un diccionario de
>>>>> python3.
>>>>>
>>>>> Antes de plantearse intentar serializarla una vez mas y luego al
>>>>> desserializar obtener resultados extraños, me plantearia mirar de donde
>>>>> obtienes esos datos y como. Porque te repito, es muy extraño que ese
>>>>> diccionario por si solo tenga cadenas unicode sin la u delante y usando
>>>>> python2.
>>>>>
>>>>> Andrey
>>>>>
>>>>>
>>>>> El 20 de marzo de 2013 23:45, Flavio Danesse <fdanesse en gmail.com>escribió:
>>>>>
>>>>> *Guarda esto en un json:*
>>>>>>
>>>>>> {"groups": {"1": {"fields": {"1": {"widget_type": "DropDownList",
>>>>>> "options": {"00005": {"text": "Si"}, "00006": {"text": "No"}}, "name":
>>>>>> "\u00bfHoy Trajiste a Clase tu XO?", "dependence": "00001"}, "0":
>>>>>> {"widget_type": "DropDownList", "options": {"00004": {"text": "No"},
>>>>>> "00003": {"text": "Si"}}, "name": "\u00bfRecibiste en Alg\u00fan Momento tu
>>>>>> XO?", "dependence": "00001"}, "2": {"widget_type": "DropDownList",
>>>>>> "options": {"00007": {"text": "Totalmente Sana"}, "00009": {"text": "No
>>>>>> Funciona"}, "00008": {"text": "Parcialmente Sana"}}, "name":
>>>>>> "\u00bfC\u00faal es el Estado Actual de tu XO?", "dependence": "00001"}},
>>>>>> "name": "Datos de XO"}, "0": {"fields": {"0": {"widget_type":
>>>>>> "RadioButton", "options": {"00001": {"text": "Si"}, "00002": {"text":
>>>>>> "No"}}, "name": "\u00bfEl Alumno se Encuentra en Clase?", "dependence":
>>>>>> ""}}, "name": "Asistencia"}, "3": {"fields": {"0": {"widget_type":
>>>>>> "TextInput", "options": {"00017": {"text": ""}}, "name": "Comentarios",
>>>>>> "dependence": "00001"}}, "name": "Comentarios"}, "2": {"fields": {"0":
>>>>>> {"widget_type": "MultipleCheckBox", "options": {"00023": {"text": "Jugar
>>>>>> con el Robot"}, "00020": {"text": "Programar"}, "00025": {"text": "Pegarle
>>>>>> a mi hermano"}, "00024": {"text": "Jugar al Ping Pong"}, "00021": {"text":
>>>>>> "Editar mi Blog"}, "00016": {"text": "Grabar videos"}, "00022": {"text":
>>>>>> "Dibujar"}, "00014": {"text": "Escuchar M\u00fasica"}, "00015": {"text":
>>>>>> "Ver Videos"}, "00012": {"text": "Estudiar"}, "00013": {"text": "Leer"},
>>>>>> "00010": {"text": "Facebook"}, "00011": {"text": "Juegos"}, "00026":
>>>>>> {"text": "Jugar con el perro"}, "00027": {"text": "Para Nada"}, "00018":
>>>>>> {"text": "Sacar Fotos"}, "00019": {"text": "Chatear"}}, "name": "\u00bfPara
>>>>>> qu\u00e9 Utilizas tu XO?", "dependence": "00001"}}, "name": "Uso de la
>>>>>> XO"}}}
>>>>>>
>>>>>>
>>>>>>
>>>>>> El 20 de marzo de 2013 19:41, Andrey Antukh <niwi en niwi.be> escribió:
>>>>>>
>>>>>>  Si crees que no he entendido la pregunta, por que vuelves a repetir
>>>>>>> lo mismo?
>>>>>>> Y partiendo del hecho de que no he entendido la pregunta, creo que
>>>>>>> sigo sin entender cual es tu duda.
>>>>>>>
>>>>>>> Andrey
>>>>>>>
>>>>>>>
>>>>>>> El 20 de marzo de 2013 23:36, Flavio Danesse <fdanesse en gmail.com>escribió:
>>>>>>>
>>>>>>> No entendiste la pregunta.
>>>>>>>>
>>>>>>>> Era:
>>>>>>>>
>>>>>>>> que pasa si en tu aplicación tienes un diccionario bien grande con
>>>>>>>> diccionarios, listas, etc . . . anidados
>>>>>>>> quieres guardarlo todo y de una en un json?
>>>>>>>>
>>>>>>>>
>>>>>>>> El 20 de marzo de 2013 17:31, Andrey Antukh <niwi en niwi.be>escribió:
>>>>>>>>
>>>>>>>> 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 <fdanesse en gmail.com>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 <niwi en niwi.be>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 <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"
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> 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"
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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"
>>>
>>> _______________________________________________
>>> 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/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130320/3e6b92a8/attachment.html>


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