From miguel.alarcos en gmail.com Fri Mar 1 19:11:10 2013 From: miguel.alarcos en gmail.com (=?ISO-8859-1?Q?Miguel_=C1ngel_Alarcos_Torrecillas?=) Date: Fri, 1 Mar 2013 19:11:10 +0100 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= Message-ID: Hola a todos, me gustaría dar a conocer un proyecto al que he dado el nombre de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y además reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a mostrar después de que se hayan modificado en el mismo u otro computador. De momento he implementado un visualizador de objetos BasicView (visualiza una fila de una tabla de BDD) y un visualizador Table que visualiza un predicado más complejo que es realmente una SQL. La wiki del proyecto tiene un ejemplo explicativo: https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home Admito todo tipo de críticas, pero especialmente las constructivas. Responderé a cuantas dudas o cuestiones me planteéis. Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jbc.develop en gmail.com Fri Mar 1 19:13:34 2013 From: jbc.develop en gmail.com (Juan BC) Date: Fri, 1 Mar 2013 15:13:34 -0300 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= In-Reply-To: References: Message-ID: no tengo permiso para ver la wiki El día 1 de marzo de 2013 15:11, Miguel Ángel Alarcos Torrecillas escribió: > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el nombre > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y además > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a mostrar > después de que se hayan modificado en el mismo u otro computador. > > De momento he implementado un visualizador de objetos BasicView (visualiza > una fila de una tabla de BDD) y un visualizador Table que visualiza un > predicado más complejo que es realmente una SQL. > > La wiki del proyecto tiene un ejemplo explicativo: > > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home > > Admito todo tipo de críticas, pero especialmente las constructivas. > Responderé a cuantas dudas o cuestiones me planteéis. > > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Juan B Cabral From miguel.alarcos en gmail.com Fri Mar 1 19:16:17 2013 From: miguel.alarcos en gmail.com (=?ISO-8859-1?Q?Miguel_=C1ngel_Alarcos_Torrecillas?=) Date: Fri, 1 Mar 2013 19:16:17 +0100 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= In-Reply-To: References: Message-ID: qué rápido :) ya está modificada a pública El 1 de marzo de 2013 19:13, Juan BC escribió: > no tengo permiso para ver la wiki > > El día 1 de marzo de 2013 15:11, Miguel Ángel Alarcos Torrecillas > escribió: > > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el > nombre > > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y > además > > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a > mostrar > > después de que se hayan modificado en el mismo u otro computador. > > > > De momento he implementado un visualizador de objetos BasicView > (visualiza > > una fila de una tabla de BDD) y un visualizador Table que visualiza un > > predicado más complejo que es realmente una SQL. > > > > La wiki del proyecto tiene un ejemplo explicativo: > > > > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home > > > > Admito todo tipo de críticas, pero especialmente las constructivas. > > Responderé a cuantas dudas o cuestiones me planteéis. > > > > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > -- > Juan B Cabral > _______________________________________________ > 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: From flomanav en yahoo.com Sat Mar 2 03:29:49 2013 From: flomanav en yahoo.com (Hamilton Kajak) Date: Fri, 1 Mar 2013 18:29:49 -0800 (PST) Subject: [Python-es] Django 1.4.3 Error login GET/POST Message-ID: <1362191389.1160.YahooMailNeo@web125203.mail.ne1.yahoo.com> Tengo el siguiente error para login de usuario funciona en el dev server pero no en prod def login_test(request):     state = "Ingreso de usuarios registrados:"     current_date=datetime.datetime.now()     #ua=request.META('HTTP_USER_AGENT', 'unknown')     ip=request.META['REMOTE_ADDR']     #user=request.user     username = password = ''     if request.POST:         username = request.POST['username']         password = request.POST['password']         user = authenticate(username=username, password=password)         if user is not None and user.is_active:             login(request, user)             state = "You're successfully logged in!"             return render_to_response('XXXXXXXXXX_XXXXXXXXX.html',{'username':username, 'password':password})         else:             state = "Su usuario ha sido desactivado!. Contacte al administrador del sitio para recuperar sus credenciales"             return render_to_response('XXXXXXXX.html',locals())     else:         state = "Su usuario o contraseña son incorrectos! Contacte al administrador del sitio"     return render_to_response('XXXXXX.html',{'state':state, 'username': username,'current_date': current_date, 'ip': ip}) El contacto técnico me dice que el dev server no ve el error que estaría en lo que me dice por SSH [01/Mar/2013 22:06:46] "GET /login/ HTTP/1.1" 200 15600 [01/Mar/2013 22:07:00] "POST /login/ HTTP/1.1" 200 494 En html la configuración es:
{% csrf_token %} gracias Marcelo ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lastvnm en gmail.com Sat Mar 2 08:05:41 2013 From: lastvnm en gmail.com (Hiko hitokiri) Date: Sat, 2 Mar 2013 01:05:41 -0600 Subject: [Python-es] Django 1.4.3 Error login GET/POST In-Reply-To: <1362191389.1160.YahooMailNeo@web125203.mail.ne1.yahoo.com> References: <1362191389.1160.YahooMailNeo@web125203.mail.ne1.yahoo.com> Message-ID: esta parte no me queda clara si me la explicas 2013/3/1 Hamilton Kajak > Tengo el siguiente error para login de usuario > > funciona en el dev server pero no en prod > > def login_test(request): > state = "Ingreso de usuarios registrados:" > current_date=datetime.datetime.now() > #ua=request.META('HTTP_USER_AGENT', 'unknown') > ip=request.META['REMOTE_ADDR'] > #user=request.user > username = password = '' > if request.POST: > username = request.POST['username'] > password = request.POST['password'] > user = authenticate(username=username, password=password) > if user is not None and user.is_active: > login(request, user) > state = "You're successfully logged in!" > return > render_to_response('XXXXXXXXXX_XXXXXXXXX.html',{'username':username, > 'password':password}) > else: > state = "Su usuario ha sido desactivado!. Contacte al > administrador del sitio para recuperar sus credenciales" > return render_to_response('XXXXXXXX.html',locals()) > else: > state = "Su usuario o contraseña son incorrectos! Contacte al > administrador del sitio" > return render_to_response('XXXXXX.html',{'state':state, 'username': > username,'current_date': current_date, 'ip': ip}) > > El contacto técnico me dice que el dev server no ve el error que estaría > en lo que me dice por SSH > > [01/Mar/2013 22:06:46] "GET /login/ HTTP/1.1" 200 15600 > [01/Mar/2013 22:07:00] "POST /login/ HTTP/1.1" 200 494 > > En html la configuración es: > > {% csrf_token %} > > gracias > > Marcelo > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le das el mismo trato a los demás ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Sun Mar 3 14:51:44 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Sun, 3 Mar 2013 14:51:44 +0100 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= In-Reply-To: References: Message-ID: El día 1 de marzo de 2013 19:11, Miguel Ángel Alarcos Torrecillas escribió: > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el nombre > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y además > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a mostrar > después de que se hayan modificado en el mismo u otro computador. > > De momento he implementado un visualizador de objetos BasicView (visualiza > una fila de una tabla de BDD) y un visualizador Table que visualiza un > predicado más complejo que es realmente una SQL. > > La wiki del proyecto tiene un ejemplo explicativo: > > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home > > Admito todo tipo de críticas, pero especialmente las constructivas. > Responderé a cuantas dudas o cuestiones me planteéis. > > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) He estado revisando el código un rato hasta que me he cansado, por lo que solo puedo darte una impresión superficial. Lo primero, es recomendarte que siguas un mismo estilo para nombrar las clases. No resulta cómodo ver mezclados los estilos "CamelCase" y unix. Se ve que has invertido muchas horas en crear este código. Pero necesita bastante refactorización, sobre todo deberías hacer un paquete con el monolítico 'wxpython_gui' y, de paso, darle otro nombre que lo diferencie mejor del paquete wxpython general. Por otro lado, deberías limpiar el código. Al repositorio puedes indicarle que no versione los ficheros .pyc (sobra designable.pyc), quitar ficheros de pruebas (wxApp1.py, wxApp2.py,...) y que no aparezcan otras versiones que no tienen nada qué ver ahora (tkinter_app.py, tkinter_gui.py). Así mismo, asegúrate que estás versionados todos los ficheros que usas (falta 'pubsub.py', que supongo es una dependencia externa). Siguiendo con cuestiones de estilo, nunca deberías usar 'from modulo import *'. Está totalmente desaconsejado fuera de su uso en la línea de comandos. En un código normal deberías siempre indicar explícitamente qué objetos estás importando. En cuanto a mejorar la compresión, creo, por lo que he visto, que intentas implementar algo similar al patrón Actor. Localizar todo el código relativo a la creación de actores en su propio módulo puede ayudar más a entender lo que hace el código, así como localizar más rápido los mensajes a los que responden los actores (por ejemplo, en con un diccionario). -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From miguel.alarcos en gmail.com Mon Mar 4 17:35:36 2013 From: miguel.alarcos en gmail.com (=?ISO-8859-1?Q?Miguel_=C1ngel_Alarcos_Torrecillas?=) Date: Mon, 4 Mar 2013 17:35:36 +0100 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= In-Reply-To: References: Message-ID: Muchas gracias Chema, no esperaba tanto. Agradezco todas las recomendaciones que me das. En principio sólo esperaba críticas respecto del propósito de la librería, de la API, y no que se buceara en el código que está un poco patas arriba. Una vez más muchas gracias. El 3 de marzo de 2013 14:51, Chema Cortes escribió: > El día 1 de marzo de 2013 19:11, Miguel Ángel Alarcos Torrecillas > escribió: > > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el > nombre > > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y > además > > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a > mostrar > > después de que se hayan modificado en el mismo u otro computador. > > > > De momento he implementado un visualizador de objetos BasicView > (visualiza > > una fila de una tabla de BDD) y un visualizador Table que visualiza un > > predicado más complejo que es realmente una SQL. > > > > La wiki del proyecto tiene un ejemplo explicativo: > > > > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home > > > > Admito todo tipo de críticas, pero especialmente las constructivas. > > Responderé a cuantas dudas o cuestiones me planteéis. > > > > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) > > He estado revisando el código un rato hasta que me he cansado, por lo > que solo puedo darte una impresión superficial. > > Lo primero, es recomendarte que siguas un mismo estilo para nombrar > las clases. No resulta cómodo ver mezclados los estilos "CamelCase" y > unix. > > Se ve que has invertido muchas horas en crear este código. Pero > necesita bastante refactorización, sobre todo deberías hacer un > paquete con el monolítico 'wxpython_gui' y, de paso, darle otro nombre > que lo diferencie mejor del paquete wxpython general. > > Por otro lado, deberías limpiar el código. Al repositorio puedes > indicarle que no versione los ficheros .pyc (sobra designable.pyc), > quitar ficheros de pruebas (wxApp1.py, wxApp2.py,...) y que no > aparezcan otras versiones que no tienen nada qué ver ahora > (tkinter_app.py, tkinter_gui.py). Así mismo, asegúrate que estás > versionados todos los ficheros que usas (falta 'pubsub.py', que > supongo es una dependencia externa). > > Siguiendo con cuestiones de estilo, nunca deberías usar 'from modulo > import *'. Está totalmente desaconsejado fuera de su uso en la línea > de comandos. En un código normal deberías siempre indicar > explícitamente qué objetos estás importando. > > En cuanto a mejorar la compresión, creo, por lo que he visto, que > intentas implementar algo similar al patrón Actor. Localizar todo el > código relativo a la creación de actores en su propio módulo puede > ayudar más a entender lo que hace el código, así como localizar más > rápido los mensajes a los que responden los actores (por ejemplo, en > con un diccionario). > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > 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: From kausdiv en gmail.com Mon Mar 4 17:54:36 2013 From: kausdiv en gmail.com (kausdiv) Date: Mon, 04 Mar 2013 17:54:36 +0100 Subject: [Python-es] =?iso-8859-1?q?Encriptaci=F3n/Desncriptaci=F3n_de_tex?= =?iso-8859-1?q?to_o_archivos?= Message-ID: <5134D1CC.50105@gmail.com> Hola de nuevo amigos. La cuestión es que estoy buscando algún algoritmo que encripte un archivo. La idea es tener en una pequeña aplicación de encritpación /desencriptación para proteger archivos. El usuario escribe una clave y esa misma es la que sirve para ambos procesos. Ahora lo hago con xor pero eso y nada es casi igual. :-( Si el usuario escribe una clave de 5 digitos, cada 6 se repite el proceso comenzando de nuevo por el primero. Muy insegura. Si alguien conoce una que sea fiable lo agradeceré. Saludos. From monobot.soft en gmail.com Mon Mar 4 18:42:21 2013 From: monobot.soft en gmail.com (monoBOT) Date: Mon, 4 Mar 2013 17:42:21 +0000 Subject: [Python-es] =?iso-8859-1?q?Encriptaci=F3n/Desncriptaci=F3n_de_tex?= =?iso-8859-1?q?to_o_archivos?= In-Reply-To: <5134D1CC.50105@gmail.com> References: <5134D1CC.50105@gmail.com> Message-ID: No se como de fiable es, pero yo uso lo siguiente: from pyDes import des def encriptaFichero(user_pass, fichero): ''' @funcionamiento: Encripta un fichero en el mismo directorio. @argumentos: la clave de encriptacion, el nombre del fichero @return: devuelve True ''' # abro el fichero lo copio en memoria y lo cierro f = open(fichero, 'rb+') d = f.read() f.close() # convierto la clave string en objeto clave k = des(user_pass) # encripto el fichero-objeto en memoria con el # objeto clave y lo grabo con el mismo nombre d = k.encrypt(d, ' ') f = open(fichero, 'wb+') f.write(d) f.close() return True def desencriptaFichero(user_pass, fichero): ''' @funcionamiento: Desencripta un fichero en el mismo directorio. @argumentos: la clave de encriptacion, el nombre del fichero @return: devuelve True ''' # abro el fichero lo copio en memoria y lo cierro f = open(fichero, 'rb+') d = f.read() f.close() # convierto la clave string en objeto clave k = des(user_pass) # desencripto el fichero-objeto en memoria con el objeto # clave y lo grabo con el mismo nombre d = k.decrypt(d, ' ') f = open(fichero, 'wb+') f.write(d) f.close() return True El 4 de marzo de 2013 16:54, kausdiv escribió: > Hola de nuevo amigos. > > La cuestión es que estoy buscando algún algoritmo que encripte un archivo. > La idea es tener en una pequeña aplicación de encritpación > /desencriptación para proteger archivos. > El usuario escribe una clave y esa misma es la que sirve para ambos > procesos. > > Ahora lo hago con xor pero eso y nada es casi igual. :-( > Si el usuario escribe una clave de 5 digitos, cada 6 se repite el proceso > comenzando de nuevo por el primero. > > Muy insegura. > > Si alguien conoce una que sea fiable lo agradeceré. > > Saludos. > ______________________________**_________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/**mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.**com/ > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rodriguez.mauricio55 en gmail.com Mon Mar 4 18:48:37 2013 From: rodriguez.mauricio55 en gmail.com (mauricio rodriguez) Date: Mon, 4 Mar 2013 15:48:37 -0200 Subject: [Python-es] =?iso-8859-1?q?Encriptaci=F3n/Desncriptaci=F3n_de_tex?= =?iso-8859-1?q?to_o_archivos?= In-Reply-To: References: <5134D1CC.50105@gmail.com> Message-ID: yo te recomendaría gnupg si quieres algo bien probado y robusto El 4 de marzo de 2013 15:42, monoBOT escribió: > No se como de fiable es, pero yo uso lo siguiente: > > from pyDes import des > > > def encriptaFichero(user_pass, fichero): > ''' > @funcionamiento: Encripta un fichero en el mismo directorio. > @argumentos: la clave de encriptacion, el nombre del fichero > @return: devuelve True > ''' > # abro el fichero lo copio en memoria y lo cierro > f = open(fichero, 'rb+') > d = f.read() > f.close() > > # convierto la clave string en objeto clave > k = des(user_pass) > > # encripto el fichero-objeto en memoria con el > # objeto clave y lo grabo con el mismo nombre > d = k.encrypt(d, ' ') > f = open(fichero, 'wb+') > f.write(d) > f.close() > return True > > > def desencriptaFichero(user_pass, fichero): > ''' > @funcionamiento: Desencripta un fichero en el mismo directorio. > @argumentos: la clave de encriptacion, el nombre del fichero > @return: devuelve True > ''' > > # abro el fichero lo copio en memoria y lo cierro > f = open(fichero, 'rb+') > d = f.read() > f.close() > > # convierto la clave string en objeto clave > k = des(user_pass) > > # desencripto el fichero-objeto en memoria con el objeto > # clave y lo grabo con el mismo nombre > d = k.decrypt(d, ' ') > f = open(fichero, 'wb+') > f.write(d) > f.close() > return True > > El 4 de marzo de 2013 16:54, kausdiv escribió: > > Hola de nuevo amigos. >> >> La cuestión es que estoy buscando algún algoritmo que encripte un archivo. >> La idea es tener en una pequeña aplicación de encritpación >> /desencriptación para proteger archivos. >> El usuario escribe una clave y esa misma es la que sirve para ambos >> procesos. >> >> Ahora lo hago con xor pero eso y nada es casi igual. :-( >> Si el usuario escribe una clave de 5 digitos, cada 6 se repite el proceso >> comenzando de nuevo por el primero. >> >> Muy insegura. >> >> Si alguien conoce una que sea fiable lo agradeceré. >> >> Saludos. >> ______________________________**_________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/**mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.**com/ >> > > > > -- > *monoBOT* > Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es > > _______________________________________________ > 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: From alvarezlucas en gmail.com Mon Mar 4 19:01:18 2013 From: alvarezlucas en gmail.com (Lucas Alvarez) Date: Mon, 4 Mar 2013 15:01:18 -0300 Subject: [Python-es] =?iso-8859-1?q?Encriptaci=F3n/Desncriptaci=F3n_de_tex?= =?iso-8859-1?q?to_o_archivos?= In-Reply-To: <5134D1CC.50105@gmail.com> References: <5134D1CC.50105@gmail.com> Message-ID: Revisate este codigo que hice para la uni.... http://pastebin.com/FwaWP9GPquizas te sirva como para adaptar Saludos. 2013/3/4 kausdiv > Hola de nuevo amigos. > > La cuestión es que estoy buscando algún algoritmo que encripte un archivo. > La idea es tener en una pequeña aplicación de encritpación > /desencriptación para proteger archivos. > El usuario escribe una clave y esa misma es la que sirve para ambos > procesos. > > Ahora lo hago con xor pero eso y nada es casi igual. :-( > Si el usuario escribe una clave de 5 digitos, cada 6 se repite el proceso > comenzando de nuevo por el primero. > > Muy insegura. > > Si alguien conoce una que sea fiable lo agradeceré. > > Saludos. > ______________________________**_________________ > 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: From jbc.develop en gmail.com Mon Mar 4 20:36:50 2013 From: jbc.develop en gmail.com (Juan BC) Date: Mon, 4 Mar 2013 16:36:50 -0300 Subject: [Python-es] [SciPyCon.Ar 2013] Anuncio Message-ID: [SciPyCon.Ar 2013] Anuncio SciPy es una comunidad dedicada al avance de la computación científica utilizando Python, a través del desarrollo de aplicaciones matemáticas, científicas e ingenieriles libres. La conferencia está orientada a la divulgación de herramientas y/o proyectos realizados con Python en el ámbito científico, académico e industrial, y sus principales objetivos incluyen: Dar oportunidad a la divulgación del lenguaje Python en la comunidad científica argentina. Dar a conocer y/o revisar herramientas disponibles, orientadas a problemas científicos así como a otros de naturaleza más puntual. Mostrar bibliotecas científicas desarrolladas por la comunidad mundial. Combinar la educación, la ingeniería y la ciencia a través de Python. Generar un marco apropiado para concretar encuentros, foros de discusión y proyectos educativos y de investigación y desarrollo relacionados con Python. HOMEPAGE: http://scipycon.com.ar/ Coordinadora General: Celia Cintas -- Juan B Cabral -- Juan B Cabral From faltet en gmail.com Tue Mar 5 12:33:34 2013 From: faltet en gmail.com (Francesc Alted) Date: Tue, 05 Mar 2013 12:33:34 +0100 Subject: [Python-es] [SciPy 2013] Periodo para presentar candidaturas a tutoriales abierto Message-ID: <5135D80E.2030700@gmail.com> Se ha abierto oficialmente el plazo para presentar candidaturas a enseñar tutoriales en el proximo SciPy 2013 en Austin, Texas. Recordad que hay un estipendio de entre $750 y $1000 para los tutores que puede ayudar a compensar los gastos de desplazamiento. Mas info en: http://conference.scipy.org/scipy2013/tutorial_overview.php Animo y suerte! -- Francesc Alted Tutorial co-chair SciPy 2013 From miguel.alarcos en gmail.com Tue Mar 5 17:57:23 2013 From: miguel.alarcos en gmail.com (=?ISO-8859-1?Q?Miguel_=C1ngel_Alarcos_Torrecillas?=) Date: Tue, 5 Mar 2013 17:57:23 +0100 Subject: [Python-es] =?iso-8859-1?q?PyViewPredicate=2C_cr=EDticas?= In-Reply-To: References: Message-ID: Tengo intención de reescribir el código bajo TDD. Si alguien desea contribuir de alguna forma, que se ponga en contacto conmigo. Gracias. El 4 de marzo de 2013 17:35, Miguel Ángel Alarcos Torrecillas < miguel.alarcos en gmail.com> escribió: > Muchas gracias Chema, no esperaba tanto. Agradezco todas las > recomendaciones que me das. > > En principio sólo esperaba críticas respecto del propósito de la librería, > de la API, y no que se buceara en el código que está un poco patas arriba. > Una vez más muchas gracias. > > > El 3 de marzo de 2013 14:51, Chema Cortes escribió: > > El día 1 de marzo de 2013 19:11, Miguel Ángel Alarcos Torrecillas >> escribió: >> > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el >> nombre >> > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y >> además >> > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a >> mostrar >> > después de que se hayan modificado en el mismo u otro computador. >> > >> > De momento he implementado un visualizador de objetos BasicView >> (visualiza >> > una fila de una tabla de BDD) y un visualizador Table que visualiza un >> > predicado más complejo que es realmente una SQL. >> > >> > La wiki del proyecto tiene un ejemplo explicativo: >> > >> > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home >> > >> > Admito todo tipo de críticas, pero especialmente las constructivas. >> > Responderé a cuantas dudas o cuestiones me planteéis. >> > >> > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :) >> >> He estado revisando el código un rato hasta que me he cansado, por lo >> que solo puedo darte una impresión superficial. >> >> Lo primero, es recomendarte que siguas un mismo estilo para nombrar >> las clases. No resulta cómodo ver mezclados los estilos "CamelCase" y >> unix. >> >> Se ve que has invertido muchas horas en crear este código. Pero >> necesita bastante refactorización, sobre todo deberías hacer un >> paquete con el monolítico 'wxpython_gui' y, de paso, darle otro nombre >> que lo diferencie mejor del paquete wxpython general. >> >> Por otro lado, deberías limpiar el código. Al repositorio puedes >> indicarle que no versione los ficheros .pyc (sobra designable.pyc), >> quitar ficheros de pruebas (wxApp1.py, wxApp2.py,...) y que no >> aparezcan otras versiones que no tienen nada qué ver ahora >> (tkinter_app.py, tkinter_gui.py). Así mismo, asegúrate que estás >> versionados todos los ficheros que usas (falta 'pubsub.py', que >> supongo es una dependencia externa). >> >> Siguiendo con cuestiones de estilo, nunca deberías usar 'from modulo >> import *'. Está totalmente desaconsejado fuera de su uso en la línea >> de comandos. En un código normal deberías siempre indicar >> explícitamente qué objetos estás importando. >> >> En cuanto a mejorar la compresión, creo, por lo que he visto, que >> intentas implementar algo similar al patrón Actor. Localizar todo el >> código relativo a la creación de actores en su propio módulo puede >> ayudar más a entender lo que hace el código, así como localizar más >> rápido los mensajes a los que responden los actores (por ejemplo, en >> con un diccionario). >> >> >> -- >> Hyperreals *R: http://ch3m4.org/blog >> Quarks, bits y otras criaturas infinitesimales >> _______________________________________________ >> 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: From plobarinas en jcea.es Wed Mar 6 08:59:04 2013 From: plobarinas en jcea.es (=?UTF-8?B?UGFibG8gTG9iYXJpw7Fhcw==?=) Date: Wed, 06 Mar 2013 08:59:04 +0100 Subject: [Python-es] =?utf-8?q?Convocatoria_reuni=C3=B3n_python-madrid_Mar?= =?utf-8?q?zo_2013?= Message-ID: <5136F748.1080506@jcea.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hola a todos: Como todos los meses el grupo python-madrid organiza una reunión, en esta ocasión el próximo martes 12, para todos aquellos que puedan/quieran acercarse. Esta vez tendremos un pequeño taller, más detalles aquí: http://www.python-madrid.es/post/reunion-marzo-2013-python-madrid/ Un saludo. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAlE290gACgkQnPFBatEMYOdf3QCgs3eajXhjaehKlnZdzNjQJR8o fQUAn2seFT99JtHYl1kzMjI6wIE1GdZJ =zv2e -----END PGP SIGNATURE----- From pych3m4 en gmail.com Mon Mar 11 13:53:46 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 11 Mar 2013 13:53:46 +0100 Subject: [Python-es] MOOC sobre Big Data Message-ID: Ya que parece que por aquí hay bastante interés por Big Data, acabo de ver un curso MOOC (Curso en Línea Masivo y Abierto) sobre el tema del Instituto Tecnológico de Delhi que se realizará con python. Empieza el 25 de marzo: https://www.coursera.org/course/bigdata -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From kikocorreoso en gmail.com Mon Mar 11 13:59:09 2013 From: kikocorreoso en gmail.com (Kiko) Date: Mon, 11 Mar 2013 13:59:09 +0100 Subject: [Python-es] MOOC sobre Big Data In-Reply-To: References: Message-ID: El 11 de marzo de 2013 13:53, Chema Cortes escribió: > Ya que parece que por aquí hay bastante interés por Big Data, acabo de > ver un curso MOOC (Curso en Línea Masivo y Abierto) sobre el tema del > Instituto Tecnológico de Delhi que se realizará con python. Empieza el > 25 de marzo: > > https://www.coursera.org/course/bigdata > Muchas gracias. Parece interesante. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From stvzito en gmail.com Mon Mar 11 19:12:31 2013 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Mon, 11 Mar 2013 12:12:31 -0600 Subject: [Python-es] Request a Pagina Message-ID: Hola buen día En la compañía donde recién comencé a laborar tienen una "rutina" que realiza una persona todos los días, la cual es entrar a la página de la autoridad y verificar la situación de los pedimentos del día anterior. Labor que me parece un tanto monótona y que puede ser automatizada, para ello me conseguí la librería requests, par ahacer las consultas y BeautifulSoup para el parseo del HTML. Quedando de está manera el código de prueba: # -*- coding: utf-8 -*- #!/usr/bin/env python import requests from BeautifulSoup import BeautifulSoup consulta_ = requests.get(' http://www.aduanas.gob.mx/soianet/oia_consultarap_cep.aspx') def cookie_2_str(cookie): cadena_ = '' for key_ in cookie.keys(): cadena_ =';%s=%s'%(key_,cookie[key_]) return cadena_[1:] if consulta_.status_code == 200 : session_id_ = consulta_.cookies['ASP.NET_SessionId'] html_ = BeautifulSoup(consulta_.text) pedimento_consulta_ = dict(cmbAduanas=430 , txtPatente=3931 , txtDocumento=8000407 , cmdBuscar='Buscar' , rblPatente='blPatente' , cmbAnios=2008 , __VIEWSTATE='%s'.encode('utf8')%html_.find(attrs={"name": "__VIEWSTATE"})['value'] ,txtVIN='' ) encabezado_ = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ,'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3' ,'Accept-Encoding':'gzip,deflate,sdch' ,'Accept-Language':'es-ES,es;q=0.8' ,'Cache-Control':'max-age=0' ,'Connection':'keep-alive' ,'Content-Length':4413 ,'Content-Type':'application/x-www-form-urlencoded' ,'Cookie': cookie_2_str(consulta_.cookies) ,'Host':'www.aduanas.gob.mx' ,'Origin':'http://www.aduanas.gob.mx' ,'Referer':'http://www.aduanas.gob.mx/soianet/oia_consultarap_cep.aspx' ,'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22'} print pedimento_consulta_ consulta_2_ = requests.post(' http://www.aduanas.gob.mx/soianet/oia_consultarap_cep.aspx', data = pedimento_consulta_ , headers = encabezado_) if consulta_2_.status_code == 200: html_2_ = BeautifulSoup(consulta_2_.text) print html_2_.findAll(id='grdPedimentos') print consulta_2_.text El primer request lo hago para obtener la clave de __VIEWSTATE que se genera cuando se visita la página la primera vez, después con esta clave envío los datos para la búsqueda, sin embargo en el 2 request no me aparece el grid donde vienen los resultados de la búsqueda, (lo saqué desde la herramienta para desarrolladores de chrome)
DOCUMENTOPATENTEESTADOFECHABANCOSECUENCIANUMERO DE OPERACIONFACTURA
80004073931< font face="Arial" color="threeddarkshadow" size="2">CUMPLIDO 26/09/2008 15:21:55 0    
TOTAL DE REGISTROS: 1 ¿Alguién tiene alguna idea del por qué no se carga desde la consulta de mi código? Agradezco de antemano sus comentarios. Saludos. by: ISC. Manuel Alejandro Estévez Fernández ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From py en ch3m4.org Mon Mar 11 21:16:42 2013 From: py en ch3m4.org (Chema Cortes) Date: Mon, 11 Mar 2013 21:16:42 +0100 Subject: [Python-es] Request a Pagina In-Reply-To: References: Message-ID: <513E3BAA.60602@ch3m4.org> El 11/03/13 19:12, Manuel A. Estevez Fernandez escribió: > Hola buen día > > En la compañía donde recién comencé a laborar tienen una "rutina" que > realiza una persona todos los días, la cual es entrar a la página de la > autoridad y verificar la situación de los pedimentos del día anterior. > Labor que me parece un tanto monótona y que puede ser automatizada, para > ello me conseguí la librería requests, par ahacer las consultas y > BeautifulSoup para el parseo del HTML. > > Quedando de está manera el código de prueba: > > # -*- coding: utf-8 -*- > #!/usr/bin/env python > > import requests > from BeautifulSoup import BeautifulSoup > consulta_ = > requests.get('http://www.aduanas.gob.mx/soianet/oia_consultarap_cep.aspx') > > def cookie_2_str(cookie): > cadena_ = '' > for key_ in cookie.keys(): > cadena_ =';%s=%s'%(key_,cookie[key_]) > return cadena_[1:] > > if consulta_.status_code == 200 : > session_id_ = consulta_.cookies['ASP.NET_SessionId'] > html_ = BeautifulSoup(consulta_.text) > pedimento_consulta_ = dict(cmbAduanas=430 > , txtPatente=3931 > , txtDocumento=8000407 > , cmdBuscar='Buscar' > , rblPatente='blPatente' ¿No sería rblPatente='rblPatente'? > , cmbAnios=2008 > , __VIEWSTATE='%s'.encode('utf8')%html_.find(attrs={"name": > "__VIEWSTATE"})['value'] > ,txtVIN='' > ) >.... -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From stvzito en gmail.com Mon Mar 11 22:59:26 2013 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Mon, 11 Mar 2013 15:59:26 -0600 Subject: [Python-es] Request a Pagina In-Reply-To: <513E3BAA.60602@ch3m4.org> References: <513E3BAA.60602@ch3m4.org> Message-ID: si, era eso Chema, error de dedo. Muchas gracias. Saludos. by: ISC. Manuel Alejandro Estévez Fernández El 11 de marzo de 2013 14:16, Chema Cortes escribió: > El 11/03/13 19:12, Manuel A. Estevez Fernandez escribió: > > Hola buen día > > > > En la compañía donde recién comencé a laborar tienen una "rutina" que > > realiza una persona todos los días, la cual es entrar a la página de la > > autoridad y verificar la situación de los pedimentos del día anterior. > > Labor que me parece un tanto monótona y que puede ser automatizada, para > > ello me conseguí la librería requests, par ahacer las consultas y > > BeautifulSoup para el parseo del HTML. > > > > Quedando de está manera el código de prueba: > > > > # -*- coding: utf-8 -*- > > #!/usr/bin/env python > > > > import requests > > from BeautifulSoup import BeautifulSoup > > consulta_ = > > requests.get('http://www.aduanas.gob.mx/soianet/oia_consultarap_cep.aspx > ') > > > > def cookie_2_str(cookie): > > cadena_ = '' > > for key_ in cookie.keys(): > > cadena_ =';%s=%s'%(key_,cookie[key_]) > > return cadena_[1:] > > > > if consulta_.status_code == 200 : > > session_id_ = consulta_.cookies['ASP.NET_SessionId'] > > html_ = BeautifulSoup(consulta_.text) > > pedimento_consulta_ = dict(cmbAduanas=430 > > , txtPatente=3931 > > , txtDocumento=8000407 > > , cmdBuscar='Buscar' > > , rblPatente='blPatente' > > ¿No sería rblPatente='rblPatente'? > > > > > , cmbAnios=2008 > > , __VIEWSTATE='%s'.encode('utf8')%html_.find(attrs={"name": > > "__VIEWSTATE"})['value'] > > ,txtVIN='' > > ) > >.... > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > 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: From jcea en jcea.es Tue Mar 12 04:08:21 2013 From: jcea en jcea.es (Jesus Cea) Date: Tue, 12 Mar 2013 04:08:21 +0100 Subject: [Python-es] En PyconUS, todo el mundo paga, aunque hay "ayudas" Message-ID: <513E9C25.4000704@jcea.es> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lectura muy interesante: PyCon: Everybody Pays http://jessenoller.com/2011/05/25/pycon-everybody-pays/ - -- Jesús Cea Avión _/_/ _/_/_/ _/_/_/ jcea en jcea.es - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/ Twitter: @jcea _/_/ _/_/ _/_/_/_/_/ jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/ _/_/ _/_/ "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/ "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ "El amor es poner tu felicidad en la felicidad de otro" - Leibniz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQCVAwUBUT6cJZlgi5GaxT1NAQJIRgP+JH6tLD+vONRlaummA7i3QTWdC5zicJqf D/H85ZLE/TzXeqS3XemstA76dgHQCC53xddApZB3gA83nWLaHYAz1uqUOePkg3AB L7B0/GXtlmgjbPlNFWdjI50A5RujkSNaq3Ljk9ivm24e2b7no9Us2Ppejqu2DHqk mQvSescJU7M= =md7E -----END PGP SIGNATURE----- From yourpadre en gmail.com Tue Mar 12 17:14:15 2013 From: yourpadre en gmail.com (Miguel Beltran R.) Date: Tue, 12 Mar 2013 10:14:15 -0600 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= Message-ID: Me gusta python pero casi no lo uso por lo que estoy atorado en algo que estoy seguro que es sencillo de mejorar pero no se como tengo el siguiente codigo (en general) ----CÓDIGO 1---- rst=dame_registros() s2="valor: 'cadena', " s="" for r in rst: if len(s) <> 0: s+=", " s+="'%s'" % (r[0]) s2+="suggestions: [%s]" % (s) ----CÓDIGO 2---- rst=dame_registros() s2="valor: 'cadena', " s=[] for r in rst: s.append(r[0]) s2+="suggestions: %s" % (s) El código 1 genera la respuesta JSON que regreso a mi aplicación WEB pero se me hace feo el código, ejemplo: query: 'A', suggestions:['ACLARACIÓN DE CAMBIO DE REPRESENTANTE', 'ACLARACIÓN DE DOMICILIO ' En cambio el código 2 es un poco mejor pero tengo el problema que me genera con unicode, ejemplo: query: 'A', suggestions: [u'ACLARACI\xd3N DE CAMBIO DE REPRESENTANTE', u'ACLARACI\xd3N DE DOMICILIO'] ¿Qué me hace falta para hacerlo mas pythonico y resultado generado sea como el código 1? ________________________________________ Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From euribates en gmail.com Tue Mar 12 17:54:46 2013 From: euribates en gmail.com (Juan Ignacio) Date: Tue, 12 Mar 2013 16:54:46 +0000 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= In-Reply-To: References: Message-ID: ¿Por qué no usas el modulo json? import json print json.dumps({'suggestions': dame_registros()}) 2013/3/12 Miguel Beltran R. > Me gusta python pero casi no lo uso por lo que estoy atorado en algo que > estoy seguro que es sencillo de mejorar pero no se como > > tengo el siguiente codigo (en general) > > ----CÓDIGO 1---- > rst=dame_registros() > s2="valor: 'cadena', " > s="" > for r in rst: > if len(s) <> 0: s+=", " > s+="'%s'" % (r[0]) > s2+="suggestions: [%s]" % (s) > > > ----CÓDIGO 2---- > rst=dame_registros() > s2="valor: 'cadena', " > s=[] > for r in rst: > s.append(r[0]) > s2+="suggestions: %s" % (s) > > El código 1 genera la respuesta JSON que regreso a mi aplicación WEB pero > se me hace feo el código, ejemplo: > > query: 'A', suggestions:['ACLARACIÓN DE CAMBIO DE REPRESENTANTE', 'ACLARACIÓN DE DOMICILIO ' > > > > En cambio el código 2 es un poco mejor pero tengo el problema que me > genera con unicode, ejemplo: > > query: 'A', suggestions: [u'ACLARACI\xd3N DE CAMBIO DE REPRESENTANTE', u'ACLARACI\xd3N DE DOMICILIO'] > > > ¿Qué me hace falta para hacerlo mas pythonico y resultado generado sea > como el código 1? > > ________________________________________ > Lo bueno de vivir un dia mas > es saber que nos queda un dia menos de vida > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Juan Ignacio Rodríguez de León Móvil: 605 890514 E-Mail: euribates en gmail.com http://www.metriz.com/ http://descon2.com/ http://www.elornitorrincoenmascarado.com/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From yourpadre en gmail.com Tue Mar 12 20:16:00 2013 From: yourpadre en gmail.com (Miguel Beltran R.) Date: Tue, 12 Mar 2013 13:16:00 -0600 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= In-Reply-To: References: Message-ID: me falto decir que es para python 2.4 (lo usa zope 2.11, es una aplicación que tenemos años con ella) El 12 de marzo de 2013 10:54, Juan Ignacio escribió: > ¿Por qué no usas el modulo json? > > import json > print json.dumps({'suggestions': dame_registros()}) > > > 2013/3/12 Miguel Beltran R. > >> Me gusta python pero casi no lo uso por lo que estoy atorado en algo que >> estoy seguro que es sencillo de mejorar pero no se como >> >> tengo el siguiente codigo (en general) >> >> ----CÓDIGO 1---- >> rst=dame_registros() >> s2="valor: 'cadena', " >> s="" >> for r in rst: >> if len(s) <> 0: s+=", " >> s+="'%s'" % (r[0]) >> s2+="suggestions: [%s]" % (s) >> >> >> ----CÓDIGO 2---- >> rst=dame_registros() >> s2="valor: 'cadena', " >> s=[] >> for r in rst: >> s.append(r[0]) >> s2+="suggestions: %s" % (s) >> >> El código 1 genera la respuesta JSON que regreso a mi aplicación WEB pero >> se me hace feo el código, ejemplo: >> >> query: 'A', suggestions:['ACLARACIÓN DE CAMBIO DE REPRESENTANTE', 'ACLARACIÓN DE DOMICILIO ' >> >> >> >> En cambio el código 2 es un poco mejor pero tengo el problema que me >> genera con unicode, ejemplo: >> >> query: 'A', suggestions: [u'ACLARACI\xd3N DE CAMBIO DE REPRESENTANTE', u'ACLARACI\xd3N DE DOMICILIO'] >> >> >> ¿Qué me hace falta para hacerlo mas pythonico y resultado generado sea >> como el código 1? >> >> ________________________________________ >> Lo bueno de vivir un dia mas >> es saber que nos queda un dia menos de vida >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Juan Ignacio Rodríguez de León > Móvil: 605 890514 > E-Mail: euribates en gmail.com > http://www.metriz.com/ > http://descon2.com/ > http://www.elornitorrincoenmascarado.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/ > > -- ________________________________________ Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From py en ch3m4.org Wed Mar 13 03:08:19 2013 From: py en ch3m4.org (Chema Cortes) Date: Wed, 13 Mar 2013 03:08:19 +0100 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= In-Reply-To: References: Message-ID: <513FDF93.2070108@ch3m4.org> El 12/03/13 17:14, Miguel Beltran R. escribió: > Me gusta python pero casi no lo uso por lo que estoy atorado en algo que > estoy seguro que es sencillo de mejorar pero no se como > > tengo el siguiente codigo (en general) > > ----CÓDIGO 1---- > rst=dame_registros() > s2="valor: 'cadena', " > s="" > for r in rst: > if len(s) <> 0: s+=", " > s+="'%s'" % (r[0]) > s2+="suggestions: [%s]" % (s) Así de pronto: rst=dame_registros() s=", ".join(["'%s'" % r[0] for r in rst]) s2=("valor: 'cadena', " + "suggestions: [%s]" % s ) Pero si te creas una función, la podrás aprovechar mejor más adelante: SEP=", " def to_json(arg=None, **kw): if arg is None: arg=kw if isinstance(arg, str): return "'%s'" % arg elif isinstance(arg, (list, tuple)): return "[%s]" % SEP.join([to_json(x) for x in arg]) elif isinstance(arg, dict): return SEP.join( ["%s: %s" % (k,to_json(v)) for (k,v) in arg.items()] ) else: #default result return to_json(str(arg)) rst=dame_registros() res=to_json( valor="cadena", suggestions=[r[0] for r in rst] ) -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From ricardo.cardenes en gmail.com Wed Mar 13 09:50:13 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Wed, 13 Mar 2013 08:50:13 +0000 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= In-Reply-To: References: Message-ID: Si te refieres a que 2.4 no incluye módulo JSON en las "baterías", da igual. Los hay externos desde antes que 2.4. Instala simplejson, por ejemplo. Yo tengo un caso similar donde se usan dos versiones de Python y terminé incluyendo algo así en mi código: try: import json except ImportError: import simplejson as json y así no tengo que cambiar el resto dependiendo de cual está disponible. Ahora, si me dices que tampoco puedes instalar módulos nuevos... 2013/3/12 Miguel Beltran R. > me falto decir que es para python 2.4 (lo usa zope 2.11, es una aplicación > que tenemos años con ella) > > > El 12 de marzo de 2013 10:54, Juan Ignacio escribió: > > ¿Por qué no usas el modulo json? >> >> import json >> print json.dumps({'suggestions': dame_registros()}) >> >> >> 2013/3/12 Miguel Beltran R. >> >>> Me gusta python pero casi no lo uso por lo que estoy atorado en algo >>> que estoy seguro que es sencillo de mejorar pero no se como >>> >>> tengo el siguiente codigo (en general) >>> >>> ----CÓDIGO 1---- >>> rst=dame_registros() >>> s2="valor: 'cadena', " >>> s="" >>> for r in rst: >>> if len(s) <> 0: s+=", " >>> s+="'%s'" % (r[0]) >>> s2+="suggestions: [%s]" % (s) >>> >>> >>> ----CÓDIGO 2---- >>> rst=dame_registros() >>> s2="valor: 'cadena', " >>> s=[] >>> for r in rst: >>> s.append(r[0]) >>> s2+="suggestions: %s" % (s) >>> >>> El código 1 genera la respuesta JSON que regreso a mi aplicación WEB >>> pero se me hace feo el código, ejemplo: >>> >>> query: 'A', suggestions:['ACLARACIÓN DE CAMBIO DE REPRESENTANTE', 'ACLARACIÓN DE DOMICILIO ' >>> >>> >>> >>> En cambio el código 2 es un poco mejor pero tengo el problema que me >>> genera con unicode, ejemplo: >>> >>> query: 'A', suggestions: [u'ACLARACI\xd3N DE CAMBIO DE REPRESENTANTE', u'ACLARACI\xd3N DE DOMICILIO'] >>> >>> >>> ¿Qué me hace falta para hacerlo mas pythonico y resultado generado sea >>> como el código 1? >>> >>> ________________________________________ >>> Lo bueno de vivir un dia mas >>> es saber que nos queda un dia menos de vida >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Juan Ignacio Rodríguez de León >> Móvil: 605 890514 >> E-Mail: euribates en gmail.com >> http://www.metriz.com/ >> http://descon2.com/ >> http://www.elornitorrincoenmascarado.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/ >> >> > > > -- > ________________________________________ > Lo bueno de vivir un dia mas > es saber que nos queda un dia menos de vida > > _______________________________________________ > 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: From rggg88 en hotmail.com Wed Mar 13 10:36:06 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 09:36:06 +0000 Subject: [Python-es] Duda sobre listas de listas Message-ID: Buenos Dias amigos, Como estan? Espero que bien. Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de hacer unos tutoriales que encontre en internet asi como otras informaciones que he visto aqui en la lista he tratado avanzar y ir buscar informaciones que se encuentran en la mini red utilizada donde trabajo. Es asi yo hago un pedido curl para el servidor y obtengo la lista de maquinas que estan conectadas a mi red en uno de los siguientes formatos: [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] Solo que la informacion viene en una lista de lista y viene repetida pero en orden contrária y queria eliminar la repeticion. Ya lei sobre los set pero no da para utilizar en una lista de lista que no es hashable. Ya trate algunas experimentaciones con for e if, como por ejemplo: a=[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] nova_l=[] for elem in a: if elem not in nova_l: nova_l.append(elem) k = nova_l print a Pero no consigo quedar solo con los dos primeros o los segundos valores. Otra forma que pensei para recebir la informacion fue esta: [u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] Y trate de utilizar este codigo a ver si daba: import string switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] port_link_list=[] t=len(links) for i in range(t): for elem in links[i]: if elem.split(',')[0]==switch[i]: port = elem.split(',')[1] if port not in port_link_list: port_link_list.append(elem.split(',')[1]) print port_link_list Mi idea es conseguir que la nueva lista quede de la siguiente forma: [[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi ignorancia. Ya ahora tengo otra duda, si tambien me pueden ayudar. Suponiendo que quedo con la informacion de la manera anterior, o sea como quiero. Quiero filtrar los valores que tengo en una lista en relacion a esta. La otra lista tiene el siguiente formato: lista1?[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] lista2=[[u'00:00:00:1b:11:b4:16:80,65534', u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80,1', u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34,65534', u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34,1', u'00:02:44:a9:b5:34']] Mi idea aqui es hacer dos for en que comparo la primera posicion de la lista 1 con la primera posicion de la lista 2 asi como la segunda coluna de la lista 1 de cada linea con la segunda coluna de la lista 2 y hago el filtraje. Queria saber si estoy pensando bien o no. Muchas gracias por toda vuestra ayuda. Disculpen el incomodo. Saludos, Rafael Gomes ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Mar 13 11:01:43 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 13 Mar 2013 11:01:43 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: El 13 de marzo de 2013 10:36, Rafael Gomes escribió: > Buenos Dias amigos, > Como estan? > Espero que bien. > > Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de > hacer unos tutoriales que encontre en internet asi como otras informaciones > que he visto aqui en la lista he tratado avanzar y ir buscar informaciones > que se encuentran en la mini red utilizada donde trabajo. > > Es asi yo hago un pedido curl para el servidor y obtengo la lista de > maquinas que estan conectadas a mi red en uno de los siguientes formatos: > > [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] > Hola. Si tienes esto: listas=[ [u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1] ] Tal como lo estás haciendo estás accediendo a listas, no a elementos de cada una de las listas que tienes en la lista de listas Por tanto, si haces: for lista in listas: # lista es elem en tu caso print listas obtendrás esto: [u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1] [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1] Para acceder a cada uno de los elementos deberás hacer: for lista in listas: for elem in lista: print elem y obtendrás cada uno de los elementos de cada una de las listas: 00:00:00:02:44:a9:b5:34 1 00:00:00:1b:11:b4:16:80 1 00:00:00:1b:11:b4:16:80 1 00:00:00:02:44:a9:b5:34 1 Es decir, para acceder al primer elemento de la primera lista de la lista de listas debes hacer listas[0][0] (*listas* es *a* en tu caso). No sé si eso te dará alguna idea. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From vitiman en gmail.com Wed Mar 13 11:05:35 2013 From: vitiman en gmail.com (Victoriano Navarro Aguilar) Date: Wed, 13 Mar 2013 11:05:35 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: Hola Rafael, Si no he entendido mal la idea es eliminar las ocurrencias de una lista de listas, no? A ver si esto te sirve >>> import itertools >>> links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] >>> chain = itertools.chain(*links) >>> the_list = list(chain) [u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1'] >>> set(the_list) set([u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1']) También lo puedes hacer la lista que recibes en modo "flattened": http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists-in-python Échale un ojo al módulo itertools que te salva la vida en muchas ocasiones. Saludos. El 13 de marzo de 2013 10:36, Rafael Gomes escribió: > Buenos Dias amigos, > Como estan? > Espero que bien. > > Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de > hacer unos tutoriales que encontre en internet asi como otras informaciones > que he visto aqui en la lista he tratado avanzar y ir buscar informaciones > que se encuentran en la mini red utilizada donde trabajo. > > Es asi yo hago un pedido curl para el servidor y obtengo la lista de > maquinas que estan conectadas a mi red en uno de los siguientes formatos: > > [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] > > Solo que la informacion viene en una lista de lista y viene repetida pero > en orden contrária y queria eliminar la repeticion. Ya lei sobre los set > pero no da para utilizar en una lista de lista que no es hashable. Ya trate > algunas experimentaciones con for e if, como por ejemplo: > > a=[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] > nova_l=[] > > for elem in a: > if elem not in nova_l: > nova_l.append(elem) > k = nova_l > print a > > Pero no consigo quedar solo con los dos primeros o los segundos valores. > > Otra forma que pensei para recebir la informacion fue esta: > [u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] > > Y trate de utilizar este codigo a ver si daba: > > import string > > switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] > > links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] > port_link_list=[] > t=len(links) > for i in range(t): > for elem in links[i]: > if elem.split(',')[0]==switch[i]: > port = elem.split(',')[1] > if port not in port_link_list: > port_link_list.append(elem.split(',')[1]) > print port_link_list > > Mi idea es conseguir que la nueva lista quede de la siguiente forma: > > [[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] > > Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi > ignorancia. > > Ya ahora tengo otra duda, si tambien me pueden ayudar. > > Suponiendo que quedo con la informacion de la manera anterior, o sea como > quiero. Quiero filtrar los valores que tengo en una lista en relacion a > esta. La otra lista tiene el siguiente formato: > > lista1?[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] > lista2=[[u'00:00:00:1b:11:b4:16:80,65534', u'00:1b:11:b4:16:80'], > [u'00:00:00:1b:11:b4:16:80,1', u'00:1b:11:b4:16:80'], > [u'00:00:00:02:44:a9:b5:34,65534', u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:02:44:a9:b5:34']] > > Mi idea aqui es hacer dos for en que comparo la primera posicion de la > lista 1 con la primera posicion de la lista 2 asi como la segunda coluna de > la lista 1 de cada linea con la segunda coluna de la lista 2 y hago el > filtraje. Queria saber si estoy pensando bien o no. > > Muchas gracias por toda vuestra ayuda. > Disculpen el incomodo. > > Saludos, > Rafael Gomes > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Victoriano Navarro Aguilar - (vitiman en gmail.com) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 11:10:32 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 10:10:32 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , Message-ID: Ok gracias entiendo, por casualidad me habia dado cuenta de eso de no aceder a los elementos sino a las listas a poco, iba a avisar ahora cuando recebi tu respuesta. Lo hice asi: l1=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2: l2.append(l1[i][j]) print l2 Solo que tengo un problema/ duda. Mi l2 queda asi: [u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80'] y yo queria que el uno se repetisiese despues del u'00:00:00:1b:11:b4:16:80' como en la lista original o sea que el l2 quedase asi: l2=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1']. Solo que no se como puedo hacer esto de forma generica. Muchas gracias por tu respuesta y tu explicacion me ayudo. :). Date: Wed, 13 Mar 2013 11:01:43 +0100 From: kikocorreoso en gmail.com To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas El 13 de marzo de 2013 10:36, Rafael Gomes escribió: Buenos Dias amigos, Como estan? Espero que bien. Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de hacer unos tutoriales que encontre en internet asi como otras informaciones que he visto aqui en la lista he tratado avanzar y ir buscar informaciones que se encuentran en la mini red utilizada donde trabajo. Es asi yo hago un pedido curl para el servidor y obtengo la lista de maquinas que estan conectadas a mi red en uno de los siguientes formatos: [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] Hola. Si tienes esto: listas=[ [u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1] ] Tal como lo estás haciendo estás accediendo a listas, no a elementos de cada una de las listas que tienes en la lista de listas Por tanto, si haces: for lista in listas: # lista es elem en tu caso print listas obtendrás esto: [u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1] [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1] Para acceder a cada uno de los elementos deberás hacer: for lista in listas: for elem in lista: print elem print elem y obtendrás cada uno de los elementos de cada una de las listas: 00:00:00:02:44:a9:b5:34 1 00:00:00:1b:11:b4:16:80 1 00:00:00:1b:11:b4:16:80 1 00:00:00:02:44:a9:b5:34 1 Es decir, para acceder al primer elemento de la primera lista de la lista de listas debes hacer listas[0][0] (listas es a en tu caso). No sé si eso te dará alguna idea. _______________________________________________ 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: From rggg88 en hotmail.com Wed Mar 13 11:13:27 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 10:13:27 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , Message-ID: Muchas gracias vitiman te he entendido, por casualidad habia visto el modulo itertools ayer, pero no lo habia entendido bien como me podia ayudar. Muchas gracias nuevamente a todos por sus rapidas respuestas y ayuda. Disculpen el incomodo :). From: vitiman en gmail.com Date: Wed, 13 Mar 2013 11:05:35 +0100 To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas Hola Rafael, Si no he entendido mal la idea es eliminar las ocurrencias de una lista de listas, no? A ver si esto te sirve >>> import itertools>>> links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] >>> chain = itertools.chain(*links)>>> the_list = list(chain)[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']>>> set(the_list)set([u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1']) También lo puedes hacer la lista que recibes en modo "flattened":http://stackoverflow.com/questions/2158395/flatten-an-irregular-list-of-lists-in-python Échale un ojo al módulo itertools que te salva la vida en muchas ocasiones. Saludos. El 13 de marzo de 2013 10:36, Rafael Gomes escribió: Buenos Dias amigos, Como estan? Espero que bien. Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de hacer unos tutoriales que encontre en internet asi como otras informaciones que he visto aqui en la lista he tratado avanzar y ir buscar informaciones que se encuentran en la mini red utilizada donde trabajo. Es asi yo hago un pedido curl para el servidor y obtengo la lista de maquinas que estan conectadas a mi red en uno de los siguientes formatos: [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] Solo que la informacion viene en una lista de lista y viene repetida pero en orden contrária y queria eliminar la repeticion. Ya lei sobre los set pero no da para utilizar en una lista de lista que no es hashable. Ya trate algunas experimentaciones con for e if, como por ejemplo: a=[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] nova_l=[] for elem in a: if elem not in nova_l: nova_l.append(elem) k = nova_l print a Pero no consigo quedar solo con los dos primeros o los segundos valores. Otra forma que pensei para recebir la informacion fue esta: [u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] Y trate de utilizar este codigo a ver si daba: import string switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] port_link_list=[] t=len(links) for i in range(t): for elem in links[i]: if elem.split(',')[0]==switch[i]: port = elem.split(',')[1] if port not in port_link_list: port_link_list.append(elem.split(',')[1]) print port_link_list Mi idea es conseguir que la nueva lista quede de la siguiente forma: [[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi ignorancia. Ya ahora tengo otra duda, si tambien me pueden ayudar. Suponiendo que quedo con la informacion de la manera anterior, o sea como quiero. Quiero filtrar los valores que tengo en una lista en relacion a esta. La otra lista tiene el siguiente formato: lista1?[[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] lista2=[[u'00:00:00:1b:11:b4:16:80,65534', u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80,1', u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34,65534', u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34,1', u'00:02:44:a9:b5:34']] Mi idea aqui es hacer dos for en que comparo la primera posicion de la lista 1 con la primera posicion de la lista 2 asi como la segunda coluna de la lista 1 de cada linea con la segunda coluna de la lista 2 y hago el filtraje. Queria saber si estoy pensando bien o no. Muchas gracias por toda vuestra ayuda. Disculpen el incomodo. Saludos, Rafael Gomes _______________________________________________ Python-es mailing list Python-es en python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Victoriano Navarro Aguilar - (vitiman en gmail.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/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Mar 13 11:21:22 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 13 Mar 2013 11:21:22 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: El 13 de marzo de 2013 11:10, Rafael Gomes escribió: > Ok gracias entiendo, por casualidad me habia dado cuenta de eso de no > aceder a los elementos sino a las listas a poco, iba a avisar ahora cuando > recebi tu respuesta. > Lo hice asi: > l1=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], > [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] > l2=[] > > l=len(l1)-1 > c=len(l1[0])-1 > > for i in range(l): > for j in range(c): > if l1[i][j] not in l2: > l2.append(l1[i][j]) > print l2 > > Solo que tengo un problema/ duda. > Mi l2 queda asi: > [u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80'] y yo queria > que el uno se repetisiese despues del u'00:00:00:1b:11:b4:16:80' como en la > lista original o sea que el l2 quedase asi: > l2=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1']. > Solo que no se como puedo hacer esto de forma generica. > Depende de tu contexto, ¿ese '1', siempre es '1'? o ¿ese '1' puede ser cualquier otra cosa que depende del elemento anterior de la lista? o ¿ese '1' es independiente de cualquier otro elemento?,... Define un poco mejor la pregunta y te podremos aportar una respuesta más detallada a tu problema. Si ese '1' se repite siempre como muestras en tu ejemplo una solución fea podría ser: l1=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2 and len(l1[i][j]) > 1: l2.append(l1[i][j]) l2.append('1') print l2 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 12:17:59 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 11:17:59 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , , , Message-ID: Si disculpa, pense más rápido de lo que escrevi y pense que ya habia referido la información. La información de mi lista es el primer numero me dá la dirección mac de las máquinas conectadas a la red, y el segundo es el puerto por la cual ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red. Resumiendo mi lista tiene el siguiente formato: l1=[['src-addr', 'src-port','dst-addr', 'dst-port']] La solucion que dijiste fue la primera que tuve, pero el problema es que ni siempre va ser 1. Muchas gracias mas una vez. Date: Wed, 13 Mar 2013 11:21:22 +0100 From: kikocorreoso en gmail.com To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas El 13 de marzo de 2013 11:10, Rafael Gomes escribió: Ok gracias entiendo, por casualidad me habia dado cuenta de eso de no aceder a los elementos sino a las listas a poco, iba a avisar ahora cuando recebi tu respuesta. Lo hice asi: l1=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2: l2.append(l1[i][j]) print l2 Solo que tengo un problema/ duda. Mi l2 queda asi: [u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80'] y yo queria que el uno se repetisiese despues del u'00:00:00:1b:11:b4:16:80' como en la lista original o sea que el l2 quedase asi: l2=[[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1']. Solo que no se como puedo hacer esto de forma generica. Depende de tu contexto, ¿ese '1', siempre es '1'? o ¿ese '1' puede ser cualquier otra cosa que depende del elemento anterior de la lista? o ¿ese '1' es independiente de cualquier otro elemento?,... Define un poco mejor la pregunta y te podremos aportar una respuesta más detallada a tu problema. Si ese '1' se repite siempre como muestras en tu ejemplo una solución fea podría ser: l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2 and len(l1[i][j]) > 1: l2.append(l1[i][j]) l2.append('1') print l2 _______________________________________________ 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: From kikocorreoso en gmail.com Wed Mar 13 12:37:45 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 13 Mar 2013 12:37:45 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: El 13 de marzo de 2013 12:17, Rafael Gomes escribió: > Si disculpa, pense más rápido de lo que escrevi y pense que ya habia > referido la información. > La información de mi lista es el primer numero me dá la dirección mac de > las máquinas conectadas a la red, y el segundo es el puerto por la cual > ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red. > > Resumiendo mi lista tiene el siguiente formato: > l1=[['src-addr', 'src-port','dst-addr', 'dst-port']] > > La solucion que dijiste fue la primera que tuve, pero el problema es que > ni siempre va ser 1. > > Muchas gracias mas una vez. > > Continuando con código feo y sin llegar a entender 100% tu problema entiendo que quieres guardar pares: 'src-addr', 'src-port' 'dst-addr', 'dst-port' que no se repitan: l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '1', > u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', > u'00:00:00:02:44:a9:b5:34', '1']] > > l2=[] > > > l=len(l1)-1 > > c=len(l1[0])-1 > > > for i in range(l): > > for j in range(c): > > if l1[i][j] not in l2 and len(l1[i][j]) > 1: > > l2.append(l1[i][j]) > * l2.append(li[i][j+1]) * > print l2 > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 13:00:50 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 12:00:50 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , , , , , Message-ID: Muchas gracias, voy a ver si me consigo explicar mejor de esta vez. Esta información la queria de forma separada para luego poder construir o intentar construir la matriz adjacencia de la red entiendes? Por eso la necesidad de no querer pares repetidos y queria tener algo asi: [['src-addr', 'src-port'], ['dst-addr', 'dst-port']] Para asi aceder a cada linea/coluna para luego pienso yo me facilita la construccion de la matriz adjacencia siempre y cuando tenga la informacion de mac_address guardada en otra lista o base de dados. Otra razon por la que estaba a tratar hacer esto, era para luego tratar diferenciar los portos que correspondem a dispositivos terminales(hosts) de switch fisicamente. Entiendes el porque de quererlo de esa forma? Muchas gracias mas una vez. Saludos rafael. Date: Wed, 13 Mar 2013 12:37:45 +0100 From: kikocorreoso en gmail.com To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas El 13 de marzo de 2013 12:17, Rafael Gomes escribió: Si disculpa, pense más rápido de lo que escrevi y pense que ya habia referido la información. La información de mi lista es el primer numero me dá la dirección mac de las máquinas conectadas a la red, y el segundo es el puerto por la cual ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red. Resumiendo mi lista tiene el siguiente formato: l1=[['src-addr', 'src-port','dst-addr', 'dst-port']] La solucion que dijiste fue la primera que tuve, pero el problema es que ni siempre va ser 1. Muchas gracias mas una vez. Continuando con código feo y sin llegar a entender 100% tu problema entiendo que quieres guardar pares: 'src-addr', 'src-port' 'dst-addr', 'dst-port' que no se repitan: l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2 and len(l1[i][j]) > 1: l2.append(l1[i][j]) l2.append(li[i][j+1]) print l2 _______________________________________________ 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: From rapto en arrakis.es Wed Mar 13 12:55:04 2013 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 13 Mar 2013 12:55:04 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: <51406918.7000500@arrakis.es> ¿Y algo así? In [12]: s = set() In [13]: a = [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] In [14]: s = set() In [15]: for el in a: s.add(tuple(el[0:2])) s.add(tuple(el[2:4])) ....: In [16]: print s set([(u'00:00:00:1b:11:b4:16:80', 1), (u'00:00:00:02:44:a9:b5:34', 1)]) El 13/03/13 10:36, Rafael Gomes escribió: > Buenos Dias amigos, > Como estan? > Espero que bien. > > Disculpen molestar, pero yo soy nuevo en el lenguaje python y luego de > hacer unos tutoriales que encontre en internet asi como otras > informaciones que he visto aqui en la lista he tratado avanzar y ir > buscar informaciones que se encuentran en la mini red utilizada donde > trabajo. > > Es asi yo hago un pedido curl para el servidor y obtengo la lista de > maquinas que estan conectadas a mi red en uno de los siguientes formatos: > > [[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] > > Solo que la informacion viene en una lista de lista y viene repetida > pero en orden contrária y queria eliminar la repeticion. Ya lei sobre > los set pero no da para utilizar en una lista de lista que no es > hashable. Ya trate algunas experimentaciones con for e if, como por > ejemplo: > > a=[[u'00:00:00:02:44:a9:b5:34', 1, u'00:00:00:1b:11:b4:16:80', 1], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:00:00:02:44:a9:b5:34', 1]] > nova_l=[] > > for elem in a: > if elem not in nova_l: > nova_l.append(elem) > k = nova_l > print a > > Pero no consigo quedar solo con los dos primeros o los segundos valores. > > Otra forma que pensei para recebir la informacion fue esta: > [u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] > > Y trate de utilizar este codigo a ver si daba: > > import string > > switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] > > links=[[u'00:00:00:1b:11:b4:16:80,1', u'00:00:00:02:44:a9:b5:34,1'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:00:00:1b:11:b4:16:80,1']] > port_link_list=[] > t=len(links) > for i in range(t): > for elem in links[i]: > if elem.split(',')[0]==switch[i]: > port = elem.split(',')[1] > if port not in port_link_list: > port_link_list.append(elem.split(',')[1]) > print port_link_list > > Mi idea es conseguir que la nueva lista quede de la siguiente forma: > > [[u'00:00:00:02:44:a9:b5:34', 1],[u'00:00:00:1b:11:b4:16:80', 1]] > > Si me pudiesen ayudar y decir que estoy haciendo mal, disculpen mi > ignorancia. > > Ya ahora tengo otra duda, si tambien me pueden ayudar. > > Suponiendo que quedo con la informacion de la manera anterior, o sea > como quiero. Quiero filtrar los valores que tengo en una lista en > relacion a esta. La otra lista tiene el siguiente formato: > > lista1^(=)[[u'00:00:00:02:44:a9:b5:34', > 1],[u'00:00:00:1b:11:b4:16:80', 1]] > lista2=[[u'00:00:00:1b:11:b4:16:80,65534', u'00:1b:11:b4:16:80'], > [u'00:00:00:1b:11:b4:16:80,1', u'00:1b:11:b4:16:80'], > [u'00:00:00:02:44:a9:b5:34,65534', u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34,1', u'00:02:44:a9:b5:34']] > > Mi idea aqui es hacer dos for en que comparo la primera posicion de la > lista 1 con la primera posicion de la lista 2 asi como la segunda > coluna de la lista 1 de cada linea con la segunda coluna de la lista 2 > y hago el filtraje. Queria saber si estoy pensando bien o no. > > Muchas gracias por toda vuestra ayuda. > Disculpen el incomodo. > > Saludos, > Rafael Gomes > > > _______________________________________________ > 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: From fdanesse en gmail.com Wed Mar 13 13:33:26 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 13 Mar 2013 09:33:26 -0300 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: Y si lo haces sencillo ?: lista = [[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] for elemento in lista: elemento.reverse() if elemento in lista: lista.remove(elemento) print lista [[u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] El 13 de marzo de 2013 09:00, Rafael Gomes escribió: > Muchas gracias, voy a ver si me consigo explicar mejor de esta vez. > Esta información la queria de forma separada para luego poder construir o > intentar construir la matriz adjacencia de la red entiendes? Por eso la > necesidad de no querer pares repetidos y queria tener algo asi: > [['src-addr', 'src-port'], > ['dst-addr', 'dst-port']] > Para asi aceder a cada linea/coluna para luego pienso yo me facilita la > construccion de la matriz adjacencia siempre y cuando tenga la informacion > de mac_address guardada en otra lista o base de dados. > > Otra razon por la que estaba a tratar hacer esto, era para luego tratar > diferenciar los portos que correspondem a dispositivos terminales(hosts) de > switch fisicamente. Entiendes el porque de quererlo de esa forma? > > > Muchas gracias mas una vez. > > > Saludos rafael. > > ------------------------------ > Date: Wed, 13 Mar 2013 12:37:45 +0100 > > From: kikocorreoso en gmail.com > To: python-es en python.org > Subject: Re: [Python-es] Duda sobre listas de listas > > El 13 de marzo de 2013 12:17, Rafael Gomes escribió: > > Si disculpa, pense más rápido de lo que escrevi y pense que ya habia > referido la información. > La información de mi lista es el primer numero me dá la dirección mac de > las máquinas conectadas a la red, y el segundo es el puerto por la cual > ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red. > > Resumiendo mi lista tiene el siguiente formato: > l1=[['src-addr', 'src-port','dst-addr', 'dst-port']] > > La solucion que dijiste fue la primera que tuve, pero el problema es que > ni siempre va ser 1. > > Muchas gracias mas una vez. > > > Continuando con código feo y sin llegar a entender 100% tu problema > entiendo que quieres guardar pares: > 'src-addr', 'src-port' > 'dst-addr', 'dst-port' > que no se repitan: > > l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '1', > u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', > u'00:00:00:02:44:a9:b5:34', '1']] > > l2=[] > > > l=len(l1)-1 > > c=len(l1[0])-1 > > > for i in range(l): > > for j in range(c): > > if l1[i][j] not in l2 and len(l1[i][j]) > 1: > > l2.append(l1[i][j]) > > * l2.append(li[i][j+1]) * > > print l2 > > > _______________________________________________ Python-es mailing list > Python-es en python.org http://mail.python.org/mailman/listinfo/python-esFAQ: > 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 13:42:12 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 12:42:12 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , , , , , , , Message-ID: Flavio no conocia esos metodos, ignorancia mia, asi es mas facil. Muchas gracias. Marco gracias también, no pense en tuplas que no es de lo que mas entienda en python, listas y diccionarios mas o menos entiendo el funcionamento tuplas es que no se mucho la diferencia, a excepcion de que sus valores son inmutables. Date: Wed, 13 Mar 2013 09:33:26 -0300 From: fdanesse en gmail.com To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas Y si lo haces sencillo ?: lista = [[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] for elemento in lista: elemento.reverse() if elemento in lista: lista.remove(elemento) print lista [[u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] El 13 de marzo de 2013 09:00, Rafael Gomes escribió: Muchas gracias, voy a ver si me consigo explicar mejor de esta vez. Esta información la queria de forma separada para luego poder construir o intentar construir la matriz adjacencia de la red entiendes? Por eso la necesidad de no querer pares repetidos y queria tener algo asi: [['src-addr', 'src-port'], ['dst-addr', 'dst-port']] Para asi aceder a cada linea/coluna para luego pienso yo me facilita la construccion de la matriz adjacencia siempre y cuando tenga la informacion de mac_address guardada en otra lista o base de dados. Otra razon por la que estaba a tratar hacer esto, era para luego tratar diferenciar los portos que correspondem a dispositivos terminales(hosts) de switch fisicamente. Entiendes el porque de quererlo de esa forma? Muchas gracias mas una vez. Saludos rafael. Date: Wed, 13 Mar 2013 12:37:45 +0100 From: kikocorreoso en gmail.com To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas El 13 de marzo de 2013 12:17, Rafael Gomes escribió: Si disculpa, pense más rápido de lo que escrevi y pense que ya habia referido la información. La información de mi lista es el primer numero me dá la dirección mac de las máquinas conectadas a la red, y el segundo es el puerto por la cual ligan. Por eso el valor 1 puede variar de acuerdo a como tenga la red. Resumiendo mi lista tiene el siguiente formato: l1=[['src-addr', 'src-port','dst-addr', 'dst-port']] La solucion que dijiste fue la primera que tuve, pero el problema es que ni siempre va ser 1. Muchas gracias mas una vez. Continuando con código feo y sin llegar a entender 100% tu problema entiendo que quieres guardar pares: 'src-addr', 'src-port' 'dst-addr', 'dst-port' que no se repitan: l1=[[u'00:00:00:02:44:a9:b5:300:00:00:02:44:a9:b5:344', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] l2=[] l=len(l1)-1 c=len(l1[0])-1 for i in range(l): for j in range(c): if l1[i][j] not in l2 and len(l1[i][j]) > 1: l2.append(l1[i][j]) l2.append(li[i][j+1]) print l2 _______________________________________________ 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/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rapto en arrakis.es Wed Mar 13 16:47:08 2013 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Wed, 13 Mar 2013 16:47:08 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: Message-ID: <51409F7C.5040509@arrakis.es> El 13/03/13 13:33, Flavio Danesse escribió: > Y si lo haces sencillo ?: > > lista = [[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', > '1'], > [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', > '1']] > for elemento in lista: > elemento.reverse() > if elemento in lista: > lista.remove(elemento) > print lista > [[u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] > > Creo que eso no funciona, prueba con diferentes juegos de datos. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 18:16:09 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 17:16:09 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: <51409F7C.5040509@arrakis.es> References: , , , , , , , , <51409F7C.5040509@arrakis.es> Message-ID: Hola de nuevo, ahora tengo una duda relacionada con la pregunta de mañana que lo queria guardar de forma diferente, ahora la informacion la tengo en este genero: switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] portos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts={} host=[] for sw in switch: for elem in mi: if (str(elem[0])==sw): lista_hosts[sw]=[] if str(elem[1]) not in (['65534'] + portos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts[sw]: lista_hosts[sw].append(host) print lista_hosts Y mi idea en el final es tener algo asi: {u'00:00:00:1b:11:b4:16:80,1': [[[u'76:45:87:ba:d7:5a', 2], u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3]]} Solo que el me devuelve la lista vacia y no se que estoy haciendo mal, pienso que el problema es en el primer if pero no se que estoy haciendo mal. Si me pueden dar alguna pista o asi agradecia. Date: Wed, 13 Mar 2013 16:47:08 +0100 From: rapto en arrakis.es To: python-es en python.org Subject: Re: [Python-es] Duda sobre listas de listas El 13/03/13 13:33, Flavio Danesse escribió: Y si lo haces sencillo ?: lista = [[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] for elemento in lista: elemento.reverse() if elemento in lista: lista.remove(elemento) print lista [[u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] Creo que eso no funciona, prueba con diferentes juegos de datos. _______________________________________________ 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: From yourpadre en gmail.com Wed Mar 13 18:13:28 2013 From: yourpadre en gmail.com (Miguel Beltran R.) Date: Wed, 13 Mar 2013 11:13:28 -0600 Subject: [Python-es] =?iso-8859-1?q?Mejorar_c=F3digo_de_crear_cadena?= In-Reply-To: References: Message-ID: Muchas gracias a todos por sus respuestas!!! Alexis y Ricardo -> Gracias por la sugerencia, lo revisare para una segunda versión la libreria para json. Alexis y Chema -> Gracias por el código pythonico :D El 13 de marzo de 2013 02:50, Ricardo Cárdenes escribió: > Si te refieres a que 2.4 no incluye módulo JSON en las "baterías", da > igual. Los hay externos desde antes que 2.4. Instala simplejson, por > ejemplo. Yo tengo un caso similar donde se usan dos versiones de Python y > terminé incluyendo algo así en mi código: > > try: > import json > except ImportError: > import simplejson as json > > y así no tengo que cambiar el resto dependiendo de cual está disponible. > Ahora, si me dices que tampoco puedes instalar módulos nuevos... > > > 2013/3/12 Miguel Beltran R. > >> me falto decir que es para python 2.4 (lo usa zope 2.11, es una >> aplicación que tenemos años con ella) >> >> >> El 12 de marzo de 2013 10:54, Juan Ignacio escribió: >> >> ¿Por qué no usas el modulo json? >>> >>> import json >>> print json.dumps({'suggestions': dame_registros()}) >>> >>> >>> 2013/3/12 Miguel Beltran R. >>> >>>> Me gusta python pero casi no lo uso por lo que estoy atorado en algo >>>> que estoy seguro que es sencillo de mejorar pero no se como >>>> >>>> tengo el siguiente codigo (en general) >>>> >>>> ----CÓDIGO 1---- >>>> rst=dame_registros() >>>> s2="valor: 'cadena', " >>>> s="" >>>> for r in rst: >>>> if len(s) <> 0: s+=", " >>>> s+="'%s'" % (r[0]) >>>> s2+="suggestions: [%s]" % (s) >>>> >>>> >>>> ----CÓDIGO 2---- >>>> rst=dame_registros() >>>> s2="valor: 'cadena', " >>>> s=[] >>>> for r in rst: >>>> s.append(r[0]) >>>> s2+="suggestions: %s" % (s) >>>> >>>> El código 1 genera la respuesta JSON que regreso a mi aplicación WEB >>>> pero se me hace feo el código, ejemplo: >>>> >>>> query: 'A', suggestions:['ACLARACIÓN DE CAMBIO DE REPRESENTANTE', 'ACLARACIÓN DE DOMICILIO ' >>>> >>>> >>>> >>>> En cambio el código 2 es un poco mejor pero tengo el problema que me >>>> genera con unicode, ejemplo: >>>> >>>> query: 'A', suggestions: [u'ACLARACI\xd3N DE CAMBIO DE REPRESENTANTE', u'ACLARACI\xd3N DE DOMICILIO'] >>>> >>>> >>>> ¿Qué me hace falta para hacerlo mas pythonico y resultado generado sea >>>> como el código 1? >>>> >>>> ________________________________________ >>>> Lo bueno de vivir un dia mas >>>> es saber que nos queda un dia menos de vida >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> http://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> >>> -- >>> Juan Ignacio Rodríguez de León >>> Móvil: 605 890514 >>> E-Mail: euribates en gmail.com >>> http://www.metriz.com/ >>> http://descon2.com/ >>> http://www.elornitorrincoenmascarado.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/ >>> >>> >> >> >> -- >> ________________________________________ >> Lo bueno de vivir un dia mas >> es saber que nos queda un dia menos de vida >> >> _______________________________________________ >> 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/ > > -- ________________________________________ Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 18:32:58 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 17:32:58 +0000 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: References: , , , , , , , , <51409F7C.5040509@arrakis.es>, Message-ID: Me olvide que mi idea era tener un diccionario para cada switch associando a cada los hosts respectivos: Yo lo maximo de bueno que consegui fue esto: {u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3], [u'76:45:87:ba:d7:5a', 2]} {u'00:00:00:1b:11:b4:16:80,1':[]} La otra cosa que hice fue esto: portos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts=[] host=[] for elem in mi: if str(elem[1]) not in (['65534'] + portos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts: lista_hosts.append(host) print lista_hosts que solo me da los hosts. Pero cuando entro con los switches no consigo :/. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Mar 13 20:53:07 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 13 Mar 2013 20:53:07 +0100 Subject: [Python-es] Duda sobre listas de listas In-Reply-To: <51409F7C.5040509@arrakis.es> References: <51409F7C.5040509@arrakis.es> Message-ID: El 2013/3/13 Marcos Sánchez Provencio : > El 13/03/13 13:33, Flavio Danesse escribió: > > Y si lo haces sencillo ?: > > lista = [[u'00:00:00:02:44:a9:b5:34', '1', u'00:00:00:1b:11:b4:16:80', '1'], > [u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] > > for elemento in lista: > elemento.reverse() > > if elemento in lista: > lista.remove(elemento) > > print lista > [[u'00:00:00:1b:11:b4:16:80', '1', u'00:00:00:02:44:a9:b5:34', '1']] > > > Creo que eso no funciona, prueba con diferentes juegos de datos. Es el peligro que tiene la "mutabilidad" sin control :P Una versión más funcional[^1], aunque mejorable: set2=set( tuple(x) for x in lista if x[::-1] not in lista or x<=x[::-1] ) ...alternativamente: set2= { tuple(min(x,x[::-1])) for x in lista } [^1]: sí, ya sé que estoy muy pesado últimamente -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From rggg88 en hotmail.com Wed Mar 13 22:30:06 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 21:30:06 +0000 Subject: [Python-es] Duda sobre matrizes en python y diccionarios con listas Message-ID: Hola de nuevo, ahora tengo una duda relacionada con la pregunta de mañana que lo queria guardar de forma diferente, ahora la informacion la tengo en este genero: switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] puertos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts={} host=[] for sw in switch: for elem in mi: if (str(elem[0])==sw): lista_hosts[sw]=[] if str(elem[1]) not in (['65534'] + puertos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts[sw]: lista_hosts[sw].append(host) print lista_hosts Mi idea es tener un diccionario para cada switch associando a cada los hosts respectivos, es decir, algo asi: {u'00:00:00:1b:11:b4:16:80,1': [[[u'76:45:87:ba:d7:5a', 2], u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3]]} Solo que el me devuelve la lista vacia y no se que estoy haciendo mal, pienso que el problema es en el primer if pero no se que estoy haciendo mal. Otras cosas q experimente: Yo lo maximo de bueno que consegui fue esto: {u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3], [u'76:45:87:ba:d7:5a', 2]} {u'00:00:00:1b:11:b4:16:80,1':[]} La otra cosa que hice fue esto: portos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts=[] host=[] for elem in mi: if str(elem[1]) not in (['65534'] + portos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts: lista_hosts.append(host) print lista_hosts que solo me da los hosts. Pero cuando entro con los switches no consigo :/. Si me pueden dar alguna pista o asi agradecia. La otra duda es sobre como puedo hacer matrizes en python? Yo utilize este metodo pero no se si es el mas correcto a=0 a=[a]*tamanho matriz_adj=[a]*tamanho print matriz_adj La matriz es para tratar de hacer la matriz adjacente de mi red de casa. Muchas gracias mas una vez, disculpen mi ignorancia. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Wed Mar 13 23:11:11 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Wed, 13 Mar 2013 23:11:11 +0100 Subject: [Python-es] Duda sobre matrizes en python y diccionarios con listas In-Reply-To: References: Message-ID: 2013/3/13 Rafael Gomes > La otra duda es sobre como puedo hacer matrizes en python? Yo utilize este > metodo pero no se si es el mas correcto > > a=0 > a=[a]*tamanho > matriz_adj=[a]*tamanho > print matriz_adj > > La matriz es para tratar de hacer la matriz adjacente de mi red de casa. > Si quieres tratar matrices, lo mejor es NumPy. import numpy as np np.zeros((2,3)) # matriz de ceros dimensiones 2x3 Sin embargo, quizá te interese echarle un vistazo a NetworX, una biblioteca para trabajar con redes. Por debajo lo que tiene son diccionarios de diccionarios, por lo que, aún siendo python puro, es bastante eficiente (yo manejo redes de 10? - 10? nodos sin problemas). Por supuesto, también exporta a matrices. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rggg88 en hotmail.com Wed Mar 13 23:14:23 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 13 Mar 2013 22:14:23 +0000 Subject: [Python-es] Duda sobre matrizes en python y diccionarios con listas In-Reply-To: References: , Message-ID: Muchas gracias por el consejo y la informacion, asi lo hare, le echare un vistazo. Continuacion de un buen dia y buena semana. From: davidmenhur en gmail.com Date: Wed, 13 Mar 2013 23:11:11 +0100 To: python-es en python.org Subject: Re: [Python-es] Duda sobre matrizes en python y diccionarios con listas 2013/3/13 Rafael Gomes La otra duda es sobre como puedo hacer matrizes en python? Yo utilize este metodo pero no se si es el mas correcto a=0 a=[a]*tamanho matriz_adj=[a]*tamanho print matriz_adj La matriz es para tratar de hacer la matriz adjacente de mi red de casa. Si quieres tratar matrices, lo mejor es NumPy. import numpy as npnp.zeros((2,3)) # matriz de ceros dimensiones 2x3 Sin embargo, quizá te interese echarle un vistazo a NetworX, una biblioteca para trabajar con redes. Por debajo lo que tiene son diccionarios de diccionarios, por lo que, aún siendo python puro, es bastante eficiente (yo manejo redes de 10? - 10? nodos sin problemas). Por supuesto, también exporta a matrices. _______________________________________________ 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: From txema en nabla.net Wed Mar 13 23:39:49 2013 From: txema en nabla.net (Txema Vicente) Date: Wed, 13 Mar 2013 23:39:49 +0100 Subject: [Python-es] Duda sobre matrizes en python y diccionarios con listas In-Reply-To: References: Message-ID: <51410035.7020407@nabla.net> if (str(elem[0])==sw): # Estas comparando un string con una lista que contiene un unicode? lista_hosts[sw]=[] # sw es una lista, no te vale como clave. Pista: usa print y repr para ver que estas haciendo. Consejo: usa clases, encapsula cada propiedad o metodo y ponle un nombre. Algo asi: class Switch(object): def __init__(self, mac): mac = mac[6:] print "Creando Switch", mac self.mac = mac self.hosts = [] self.ports = {} def is_mac(self, mac): return mac.endswith(self.mac) def connect(self, mac, port): if mac == self.mac: return self.hosts.append(mac) self.ports[port]=mac def __repr__(self): return "" % (self.mac, repr(self.ports)) switches = [] for sw in switch: mac = sw[0] s = Switch(mac) switches.append(s) for elem in mi: if s.is_mac(elem[0]): s.connect(elem[2], elem[1]) print switches >>> Creando Switch 00:1b:11:b4:16:80 Creando Switch 00:02:44:a9:b5:34 [, ] El 13/03/2013 22:30, Rafael Gomes escribió: > Hola de nuevo, ahora tengo una duda relacionada con la pregunta de > mañana que lo queria guardar de forma diferente, ahora la informacion > la tengo en este genero: > > switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] > puertos={u'00:00:00:02:44:a9:b5:34': [u'1'], > u'00:00:00:1b:11:b4:16:80': [u'1']} > mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], > [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], > [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], > [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] > > lista_hosts={} > host=[] > > for sw in switch: > for elem in mi: > if (str(elem[0])==sw): > lista_hosts[sw]=[] > if str(elem[1]) not in (['65534'] + > puertos[elem[0]]): > aux=[elem[2], elem[1]] > host.append(aux) > if host not in lista_hosts[sw]: > lista_hosts[sw].append(host) > > print lista_hosts > > Mi idea es tener un diccionario para cada switch associando a cada los > hosts respectivos, es decir, algo asi: > {u'00:00:00:1b:11:b4:16:80,1': [[[u'76:45:87:ba:d7:5a', 2], > u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], > [u'ba:67:bb:e1:da:5b', 3]]} > > > Solo que el me devuelve la lista vacia y no se que estoy haciendo mal, > pienso que el problema es en el primer if pero no se que estoy > haciendo mal. > > Otras cosas q experimente: > > Yo lo maximo de bueno que consegui fue esto: > {u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], > [u'ba:67:bb:e1:da:5b', 3], [u'76:45:87:ba:d7:5a', 2]} > {u'00:00:00:1b:11:b4:16:80,1':[]} > > La otra cosa que hice fue esto: > > portos={u'00:00:00:02:44:a9:b5:34': [u'1'], > u'00:00:00:1b:11:b4:16:80': [u'1']} > mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], > [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], > [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], > [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], > [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], > [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] > > lista_hosts=[] > host=[] > > for elem in mi: > if str(elem[1]) not in (['65534'] + portos[elem[0]]): > aux=[elem[2], elem[1]] > host.append(aux) > if host not in lista_hosts: > lista_hosts.append(host) > print lista_hosts > > que solo me da los hosts. > Pero cuando entro con los switches no consigo :/. > > Si me pueden dar alguna pista o asi agradecia. > > La otra duda es sobre como puedo hacer matrizes en python? Yo utilize > este metodo pero no se si es el mas correcto > > a=0 > a=[a]*tamanho > matriz_adj=[a]*tamanho > print matriz_adj > > La matriz es para tratar de hacer la matriz adjacente de mi red de casa. > > Muchas gracias mas una vez, disculpen mi ignorancia. > > > _______________________________________________ > 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: From rggg88 en hotmail.com Thu Mar 14 01:07:21 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Thu, 14 Mar 2013 00:07:21 +0000 Subject: [Python-es] Duda sobre matrizes en python y diccionarios con listas In-Reply-To: <51410035.7020407@nabla.net> References: , <51410035.7020407@nabla.net> Message-ID: Muchas gracias vicente, yo me temia que fuese que estuviese comparando cosas que no debiese, pero no estaba seguro y habia tratado de poner todo en el mismo tipo. Gracias por el consejo de las clases, como soy muy principiante en python no quise entrar con clases, se que normalmente son mas faciles de trabajar y entender, por lo menos fue la nocion que tuve cuando trabaje un poco con java. Continuacion de una buena semana. Un abrazo. Date: Wed, 13 Mar 2013 23:39:49 +0100 From: txema en nabla.net To: python-es en python.org Subject: Re: [Python-es] Duda sobre matrizes en python y diccionarios con listas if (str(elem[0])==sw): # Estas comparando un string con una lista que contiene un unicode? lista_hosts[sw]=[] # sw es una lista, no te vale como clave. Pista: usa print y repr para ver que estas haciendo. Consejo: usa clases, encapsula cada propiedad o metodo y ponle un nombre. Algo asi: class Switch(object): def __init__(self, mac): mac = mac[6:] print "Creando Switch", mac self.mac = mac self.hosts = [] self.ports = {} def is_mac(self, mac): return mac.endswith(self.mac) def connect(self, mac, port): if mac == self.mac: return self.hosts.append(mac) self.ports[port]=mac def __repr__(self): return "" % (self.mac, repr(self.ports)) switches = [] for sw in switch: mac = sw[0] s = Switch(mac) switches.append(s) for elem in mi: if s.is_mac(elem[0]): s.connect(elem[2], elem[1]) print switches >>> Creando Switch 00:1b:11:b4:16:80 Creando Switch 00:02:44:a9:b5:34 [, ] El 13/03/2013 22:30, Rafael Gomes escribió: Hola de nuevo, ahora tengo una duda relacionada con la pregunta de mañana que lo queria guardar de forma diferente, ahora la informacion la tengo en este genero: switch=[[u'00:00:00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34']] puertos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts={} host=[] for sw in switch: for elem in mi: if (str(elem[0])==sw): lista_hosts[sw]=[] if str(elem[1]) not in (['65534'] + puertos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts[sw]: lista_hosts[sw].append(host) print lista_hosts Mi idea es tener un diccionario para cada switch associando a cada los hosts respectivos, es decir, algo asi: {u'00:00:00:1b:11:b4:16:80,1': [[[u'76:45:87:ba:d7:5a', 2], u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3]]} Solo que el me devuelve la lista vacia y no se que estoy haciendo mal, pienso que el problema es en el primer if pero no se que estoy haciendo mal. Otras cosas q experimente: Yo lo maximo de bueno que consegui fue esto: {u'00:00:00:02:44:a9:b5:34,1':[u'0e:2f:31:21:82:ee', 2], [u'ba:67:bb:e1:da:5b', 3], [u'76:45:87:ba:d7:5a', 2]} {u'00:00:00:1b:11:b4:16:80,1':[]} La otra cosa que hice fue esto: portos={u'00:00:00:02:44:a9:b5:34': [u'1'], u'00:00:00:1b:11:b4:16:80': [u'1']} mi=[[u'00:00:00:1b:11:b4:16:80', 65534, u'00:1b:11:b4:16:80'], [u'00:00:00:1b:11:b4:16:80', 2, u'76:45:87:ba:d7:5a'], [u'00:00:00:1b:11:b4:16:80', 1, u'00:1b:11:b4:16:80'], [u'00:00:00:02:44:a9:b5:34', 65534, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 2, u'0e:2f:31:21:82:ee'], [u'00:00:00:02:44:a9:b5:34', 1, u'00:02:44:a9:b5:34'], [u'00:00:00:02:44:a9:b5:34', 3, u'ba:67:bb:e1:da:5b']] lista_hosts=[] host=[] for elem in mi: if str(elem[1]) not in (['65534'] + portos[elem[0]]): aux=[elem[2], elem[1]] host.append(aux) if host not in lista_hosts: lista_hosts.append(host) print lista_hosts que solo me da los hosts. Pero cuando entro con los switches no consigo :/. Si me pueden dar alguna pista o asi agradecia. La otra duda es sobre como puedo hacer matrizes en python? Yo utilize este metodo pero no se si es el mas correcto a=0 a=[a]*tamanho matriz_adj=[a]*tamanho print matriz_adj La matriz es para tratar de hacer la matriz adjacente de mi red de casa. Muchas gracias mas una vez, disculpen mi ignorancia. _______________________________________________ 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/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Thu Mar 14 13:53:49 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Thu, 14 Mar 2013 13:53:49 +0100 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= Message-ID: Hola: Estaba echándole un vistazo superficial a la biblioteca cmath de Python [1] cuando encontré esto: static Py_complex 667 c_sqrt(Py_complex z) 668 { [...] 696 Py_complex r; [...] 702 if (z.real == 0. && z.imag == 0.) { 703 r.real = 0.; 704 r.imag = z.imag; 705 return r; 706 } ... El códig en primer lugar comprueba si el número es 0, y si no continúa calculando la raíz cuadrada para números generales. Por supuesto, la raíz cuadrada de 0+0j es 0+0j, pero lo calcula de forma curiosa: la parte real la pone como 0 y la imaginaria como la imaginaria del número original (que es 0). ¿Por qué es esto? Se me ocurrió que podría ser para preservar tipos, pero >>> cmath.sqrt(0) 0j devuelve un complejo, no un real. [1] http://svn.python.org/view/python/trunk/Modules/cmathmodule.c?revision=76978&view=markup From ricardo.cardenes en gmail.com Thu Mar 14 15:23:16 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Thu, 14 Mar 2013 14:23:16 +0000 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: References: Message-ID: La representación interna de un complejo son dos números reales: la magnitud de su parte real y la magnitud de su parte imaginaria. En principio "r.real = 0.; r.imag = z.imag;" es lo mismo que "r.real = 0.; r.imag = 0.;", así que no tengo nada claro lo que está pasando ahí. cmath.sqrt devuelve un complejo siempre (es la idea) 2013/3/14 Da?id > Hola: > > Estaba echándole un vistazo superficial a la biblioteca cmath de > Python [1] cuando encontré esto: > > static Py_complex > 667 c_sqrt(Py_complex z) > 668 { > [...] > 696 Py_complex r; > [...] > 702 if (z.real == 0. && z.imag == 0.) { > 703 r.real = 0.; > 704 r.imag = z.imag; > 705 return r; > 706 } > ... > > El códig en primer lugar comprueba si el número es 0, y si no continúa > calculando la raíz cuadrada para números generales. Por supuesto, la > raíz cuadrada de 0+0j es 0+0j, pero lo calcula de forma curiosa: la > parte real la pone como 0 y la imaginaria como la imaginaria del > número original (que es 0). ¿Por qué es esto? > > Se me ocurrió que podría ser para preservar tipos, pero > > >>> cmath.sqrt(0) > 0j > > devuelve un complejo, no un real. > > > > [1] > http://svn.python.org/view/python/trunk/Modules/cmathmodule.c?revision=76978&view=markup > _______________________________________________ > 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: From ricardo.cardenes en gmail.com Thu Mar 14 15:39:54 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Thu, 14 Mar 2013 14:39:54 +0000 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: References: Message-ID: De hecho, fíjate la implementación antigua: 245 Py_complex r; 246 double s,d; 247 if (x.real == 0. && x.imag == 0.) 248 r = x; El cambio a lo que tienes ahí es relativamente reciente (r62380, en 2008). El parche es una colaboración con Mark Dickinson. Quizá puedas averiguar googleando un poco por qué lo implementaron así. 2013/3/14 Ricardo Cárdenes > La representación interna de un complejo son dos números reales: la > magnitud de su parte real y la magnitud de su parte imaginaria. En > principio "r.real = 0.; r.imag = z.imag;" es lo mismo que "r.real = 0.; > r.imag = 0.;", así que no tengo nada claro lo que está pasando ahí. > cmath.sqrt devuelve un complejo siempre (es la idea) > > > 2013/3/14 Da?id > >> Hola: >> >> Estaba echándole un vistazo superficial a la biblioteca cmath de >> Python [1] cuando encontré esto: >> >> static Py_complex >> 667 c_sqrt(Py_complex z) >> 668 { >> [...] >> 696 Py_complex r; >> [...] >> 702 if (z.real == 0. && z.imag == 0.) { >> 703 r.real = 0.; >> 704 r.imag = z.imag; >> 705 return r; >> 706 } >> ... >> >> El códig en primer lugar comprueba si el número es 0, y si no continúa >> calculando la raíz cuadrada para números generales. Por supuesto, la >> raíz cuadrada de 0+0j es 0+0j, pero lo calcula de forma curiosa: la >> parte real la pone como 0 y la imaginaria como la imaginaria del >> número original (que es 0). ¿Por qué es esto? >> >> Se me ocurrió que podría ser para preservar tipos, pero >> >> >>> cmath.sqrt(0) >> 0j >> >> devuelve un complejo, no un real. >> >> >> >> [1] >> http://svn.python.org/view/python/trunk/Modules/cmathmodule.c?revision=76978&view=markup >> _______________________________________________ >> 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: From pych3m4 en gmail.com Thu Mar 14 22:56:58 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 14 Mar 2013 22:56:58 +0100 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: References: Message-ID: Sencillamente, está preservando el signo de la parte imaginaria tal y como se define para las raices cuadradas con complejos. >>> cmath.sqrt(0j) 0j >>> cmath.sqrt(-0j) -0j La pregunta hay que reformularla a ¿para qué queremos "ceros con signos"? Sin entrar en mucho detalle, se necesitan para que algunas transformaciones, válidas en el espacio de los números reales, queden bien definidas en el plano complejo, sin discontinuidades al aproximarse a las asíntotas, lo que simplifica bastante los cálculos. El día 14 de marzo de 2013 15:39, Ricardo Cárdenes escribió: > De hecho, fíjate la implementación antigua: > > 245 Py_complex r; > 246 double s,d; > 247 if (x.real == 0. && x.imag == 0.) > 248 r = x; > > El cambio a lo que tienes ahí es relativamente reciente (r62380, en 2008). > El parche es una colaboración con Mark Dickinson. Quizá puedas averiguar > googleando un poco por qué lo implementaron así. > > > 2013/3/14 Ricardo Cárdenes >> >> La representación interna de un complejo son dos números reales: la >> magnitud de su parte real y la magnitud de su parte imaginaria. En principio >> "r.real = 0.; r.imag = z.imag;" es lo mismo que "r.real = 0.; r.imag = 0.;", >> así que no tengo nada claro lo que está pasando ahí. cmath.sqrt devuelve un >> complejo siempre (es la idea) >> >> >> 2013/3/14 Da?id >>> >>> Hola: >>> >>> Estaba echándole un vistazo superficial a la biblioteca cmath de >>> Python [1] cuando encontré esto: >>> >>> static Py_complex >>> 667 c_sqrt(Py_complex z) >>> 668 { >>> [...] >>> 696 Py_complex r; >>> [...] >>> 702 if (z.real == 0. && z.imag == 0.) { >>> 703 r.real = 0.; >>> 704 r.imag = z.imag; >>> 705 return r; >>> 706 } >>> ... >>> >>> El códig en primer lugar comprueba si el número es 0, y si no continúa >>> calculando la raíz cuadrada para números generales. Por supuesto, la >>> raíz cuadrada de 0+0j es 0+0j, pero lo calcula de forma curiosa: la >>> parte real la pone como 0 y la imaginaria como la imaginaria del >>> número original (que es 0). ¿Por qué es esto? >>> >>> Se me ocurrió que podría ser para preservar tipos, pero >>> >>> >>> cmath.sqrt(0) >>> 0j >>> >>> devuelve un complejo, no un real. >>> >>> >>> >>> [1] >>> http://svn.python.org/view/python/trunk/Modules/cmathmodule.c?revision=76978&view=markup >>> _______________________________________________ >>> 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/ > -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From davidmenhur en gmail.com Thu Mar 14 23:24:10 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Thu, 14 Mar 2013 23:24:10 +0100 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: References: Message-ID: 2013/3/14 Chema Cortes : > Sencillamente, está preservando el signo de la parte imaginaria tal y > como se define para las raices cuadradas con complejos. ¡Ajá! Muchas gracias, eso lo explica todo. En la implementación anterior se preservaba también el signo de la parte real, que no tiene mucho sentido y caiga en la discontinuidad de la hoja de Riemann. From rapto en arrakis.es Fri Mar 15 11:38:42 2013 From: rapto en arrakis.es (=?ISO-8859-1?Q?Marcos_S=E1nchez_Provencio?=) Date: Fri, 15 Mar 2013 11:38:42 +0100 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: References: Message-ID: <5142FA32.9030702@arrakis.es> El 14/03/13 22:56, Chema Cortes escribió: > Sencillamente, está preservando el signo de la parte imaginaria tal y > como se define para las raices cuadradas con complejos. > >>>> cmath.sqrt(0j) > 0j >>>> cmath.sqrt(-0j) > -0j > > > La pregunta hay que reformularla a ¿para qué queremos "ceros con > signos"? Sin entrar en mucho detalle, se necesitan para que algunas > transformaciones, válidas en el espacio de los números reales, queden > bien definidas en el plano complejo, sin discontinuidades al > aproximarse a las asíntotas, lo que simplifica bastante los cálculos. > > > > > By Chema, la persona que sabe de asíntotas, Python y MSAccess a la vez. No dejas de sorprenderme, y son años... From juanlu001 en gmail.com Fri Mar 15 11:50:30 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Fri, 15 Mar 2013 11:50:30 +0100 Subject: [Python-es] =?iso-8859-1?q?Implementaci=F3n_de_cmath=2Esqrt?= In-Reply-To: <5142FA32.9030702@arrakis.es> References: <5142FA32.9030702@arrakis.es> Message-ID: <5142FCF6.3090307@gmail.com> On 03/15/2013 11:38 AM, Marcos Sánchez Provencio wrote: > El 14/03/13 22:56, Chema Cortes escribió: >> Sencillamente, está preservando el signo de la parte imaginaria tal y >> como se define para las raices cuadradas con complejos. >> >>>>> cmath.sqrt(0j) >> 0j >>>>> cmath.sqrt(-0j) >> -0j Y con esto acabo de aprender: >>> 0j == 0 True >>> -0j == 0 True no tenía ni idea. ¡Gracias! From diego.uribe.gamez en gmail.com Sun Mar 17 00:29:11 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Sat, 16 Mar 2013 18:29:11 -0500 Subject: [Python-es] Problemas para formatear fecha en str Message-ID: Buenas noches, desde Colombia Tengo un problema y es que tengo que formatear la fecha en una forma especifica pero no logro hacerlo. El resultado tiene que ser como este: 5 de marzo de 2013 a las 18:07 Pero el resultado que obtengo es este: str(datetime.now()) 2013-03-16 18:25:44.834242 Como debería hacerlo? Gracias -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alfonsodg en gmail.com Sun Mar 17 00:47:17 2013 From: alfonsodg en gmail.com (Alfonso de la Guarda) Date: Sat, 16 Mar 2013 18:47:17 -0500 Subject: [Python-es] Problemas para formatear fecha en str In-Reply-To: References: Message-ID: Hola, >>> import time >>> time.strftime('%Y-%m') #Revisa la doc para lo que quieres '2013-03' Saludos, -------------------------------- Alfonso de la Guarda Twitter: @alfonsodg Redes sociales: alfonsodg Telef. 991935157 1024D/B23B24A4 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 2013/3/16 Diego Uribe Gamez > Buenas noches, desde Colombia > > Tengo un problema y es que tengo que formatear la fecha en una forma > especifica pero no logro hacerlo. > > El resultado tiene que ser como este: > 5 de marzo de 2013 a las 18:07 > > Pero el resultado que obtengo es este: > str(datetime.now()) > 2013-03-16 18:25:44.834242 > > Como debería hacerlo? > > Gracias > > -- > *Diego Alonso Uribe Gamez* > ------------------------------ > > *Desarrollador web* > > Twitter: @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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Sun Mar 17 01:03:55 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Sat, 16 Mar 2013 19:03:55 -0500 Subject: [Python-es] Problemas para formatear fecha en str In-Reply-To: References: Message-ID: Si señor, pero tengo otro problema, para la fecha de hoy en el nombre del mes este coloca el nombre en ingles, como lo paso a español? datetime.now().strftime("%d de %B de %Y a las %H:%M") 16 de March de 2013 a las 19:03 Gracias. El 16 de marzo de 2013 18:47, Alfonso de la Guarda escribió: > Hola, > > >>> import time > >>> time.strftime('%Y-%m') #Revisa la doc para lo que quieres > '2013-03' > > > Saludos, > > -------------------------------- > Alfonso de la Guarda > Twitter: @alfonsodg > Redes sociales: alfonsodg > Telef. 991935157 > 1024D/B23B24A4 > 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 > > > 2013/3/16 Diego Uribe Gamez > >> Buenas noches, desde Colombia >> >> Tengo un problema y es que tengo que formatear la fecha en una forma >> especifica pero no logro hacerlo. >> >> El resultado tiene que ser como este: >> 5 de marzo de 2013 a las 18:07 >> >> Pero el resultado que obtengo es este: >> str(datetime.now()) >> 2013-03-16 18:25:44.834242 >> >> Como debería hacerlo? >> >> Gracias >> >> -- >> *Diego Alonso Uribe Gamez* >> ------------------------------ >> >> *Desarrollador web* >> >> Twitter: @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/ > > -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From txema en nabla.net Sun Mar 17 00:57:33 2013 From: txema en nabla.net (Txema Vicente) Date: Sun, 17 Mar 2013 00:57:33 +0100 Subject: [Python-es] Problemas para formatear fecha en str In-Reply-To: References: Message-ID: <514506ED.4060801@nabla.net> >>> import time >>> import locale >>> locale.setlocale(locale.LC_ALL, 'Spanish_Spain.1252') 'Spanish_Spain.1252' >>> print time.strftime("%A, %d de %B de %Y a las %H:%M") domingo, 17 de marzo de 2013 a las 00:57 El 17/03/2013 0:29, Diego Uribe Gamez escribió: > Buenas noches, desde Colombia > > Tengo un problema y es que tengo que formatear la fecha en una forma > especifica pero no logro hacerlo. > > El resultado tiene que ser como este: > 5 de marzo de 2013 a las 18:07 > > Pero el resultado que obtengo es este: > str(datetime.now()) > 2013-03-16 18:25:44.834242 > > Como debería hacerlo? > > Gracias > > -- > *Diego Alonso Uribe Gamez* > ------------------------------------------------------------------------ > > *Desarrollador web* > > Twitter: @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/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From monobot.soft en gmail.com Sun Mar 17 11:44:23 2013 From: monobot.soft en gmail.com (monoBOT) Date: Sun, 17 Mar 2013 10:44:23 +0000 Subject: [Python-es] Problemas para formatear fecha en str In-Reply-To: References: Message-ID: Vuelca un string ... hazle una sustitución El 17 de marzo de 2013 00:03, Diego Uribe Gamez escribió: > Si señor, pero tengo otro problema, para la fecha de hoy en el nombre del > mes este coloca el nombre en ingles, como lo paso a español? > > datetime.now().strftime("%d de %B de %Y a las %H:%M") > 16 de March de 2013 a las 19:03 > > Gracias. > > > El 16 de marzo de 2013 18:47, Alfonso de la Guarda escribió: > > Hola, >> >> >>> import time >> >>> time.strftime('%Y-%m') #Revisa la doc para lo que quieres >> '2013-03' >> >> >> Saludos, >> >> -------------------------------- >> Alfonso de la Guarda >> Twitter: @alfonsodg >> Redes sociales: alfonsodg >> Telef. 991935157 >> 1024D/B23B24A4 >> 5469 ED92 75A3 BBDB FD6B 58A5 54A1 851D B23B 24A4 >> >> >> 2013/3/16 Diego Uribe Gamez >> >>> Buenas noches, desde Colombia >>> >>> Tengo un problema y es que tengo que formatear la fecha en una forma >>> especifica pero no logro hacerlo. >>> >>> El resultado tiene que ser como este: >>> 5 de marzo de 2013 a las 18:07 >>> >>> Pero el resultado que obtengo es este: >>> str(datetime.now()) >>> 2013-03-16 18:25:44.834242 >>> >>> Como debería hacerlo? >>> >>> Gracias >>> >>> -- >>> *Diego Alonso Uribe Gamez* >>> ------------------------------ >>> >>> *Desarrollador web* >>> >>> Twitter: @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/ >> >> > > > -- > *Diego Alonso Uribe Gamez* > ------------------------------ > > *Desarrollador web* > > Twitter: @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/ > > -- *monoBOT* Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pjmakey2 en gmail.com Mon Mar 18 05:41:57 2013 From: pjmakey2 en gmail.com (Peter juliano) Date: Mon, 18 Mar 2013 00:41:57 -0400 Subject: [Python-es] decodificar codigo php Message-ID: Buenas. Hace no mucho, un amigo mio renuncio de la empresa donde estabamos trabajando, dejo varias aplicaciones en php, y algunos codigos archivos tenian codigo de hasheo base64, me dijo que no necesitaba saber, de eso, ya que solo manejada, las peticiones http que hacia el servidor y algunas validaciones de de seguridad. Como estoy migrando las aplicaciones a django, no me sente a probar el deshasheo, pero como hoy lunes de madrugada estoy un poco aburrido lo intente y en menos de una hora logre dar con el codigo de sus archivos. Comparto con ustedes el codigo http://pastebin.com/e6KJhAW8 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Mon Mar 18 11:16:10 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 18 Mar 2013 11:16:10 +0100 Subject: [Python-es] decodificar codigo php In-Reply-To: References: Message-ID: El día 18 de marzo de 2013 05:41, Peter juliano escribió: > Hace no mucho, un amigo mio renuncio de la empresa donde estabamos > trabajando, dejo varias aplicaciones en php, y algunos codigos archivos > tenian codigo de hasheo base64, me dijo que no necesitaba saber, de eso, ya > que solo manejada, las peticiones http que hacia el servidor y algunas > validaciones de de seguridad. Como estoy migrando las aplicaciones a django, > no me sente a probar el deshasheo, pero como hoy lunes de madrugada estoy un > poco aburrido lo intente y en menos de una hora logre dar con el codigo de > sus archivos. Comparto con ustedes el codigo > > http://pastebin.com/e6KJhAW8 Si me permites algunas sugerencias: - Si un patrón re lo vas a usar varias veces, es conveniente compilarlo para optimizar su uso. - La búsqueda de expresiones regulares se hace por "líneas" de texto. No sé cómo será el hash, pero si es de más de una línea de texto tendrás que indicarlo en el patrón de búsqueda. - En lugar del findall para extraer cada hash y sustituirlo, hay una función mejor, re.sub(), que permite pasar una función para reemplazar el texto que ha encontrado. En definitiva, una versión refactorizada (sin testear): http://pastebin.com/b92phdpc -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From yamila.ms en gmail.com Tue Mar 19 18:34:37 2013 From: yamila.ms en gmail.com (=?ISO-8859-1?Q?Yamila_Moreno_Su=E1rez?=) Date: Tue, 19 Mar 2013 18:34:37 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura Message-ID: ¡Buenas! Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo que no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! ***** Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se llamará python a secas? ¿Habrá algún día en que al escribir python arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O es así en todas las distribuciones? ****** Un saludo, yami -- Yamila Moreno Suárez http://dendarii.wordpress.com http://moduslaborandi.net ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From rodriguez.mauricio55 en gmail.com Tue Mar 19 19:09:56 2013 From: rodriguez.mauricio55 en gmail.com (mauricio rodriguez) Date: Tue, 19 Mar 2013 15:09:56 -0300 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: sobre el futuro no se nada soy un simple mortal =) sobre tipear python y que se lance la version 3 es tan simple como agregarlo al path. sobre si es asi en debian/*untus efectivamente eso es asi por la paqueteria que tienes en debianen que viene python2 en arch pones python y ... mcun en RUN ~ $ python Python 3.3.0 (default, Dec 22 2012, 21:02:07) [GCC 4.7.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> El 19 de marzo de 2013 14:34, Yamila Moreno Suárez escribió: > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo que > no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > > ****** > > Un saludo, > yami > > -- > Yamila Moreno Suárez > http://dendarii.wordpress.com > http://moduslaborandi.net > > _______________________________________________ > 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: From carlos.zun en gmail.com Tue Mar 19 20:19:58 2013 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Tue, 19 Mar 2013 14:19:58 -0500 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: 2013/3/19 Yamila Moreno Suárez : > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo que no > sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > Se refiere al binario? en Debian /usr/bin/python es un symlink a /usr/bin/python2.7, si quiere que ejecutar python llame a python3 tendría que cambiar el symlink. Pero eso ocasionaría problemas a otros paquetes que utilicen python 2... A menos que el script especifique con que python trabajar directamente en el shebang: #!/usr/bin/python2 Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From juanlu001 en gmail.com Tue Mar 19 20:47:30 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Tue, 19 Mar 2013 20:47:30 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: <5148C0D2.6090508@gmail.com> On 03/19/2013 06:34 PM, Yamila Moreno Suárez wrote: > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo > que no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > > ****** > > Un saludo, > yami > > -- > Yamila Moreno Suárez > http://dendarii.wordpress.com > http://moduslaborandi.net > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ Si la duda de tu amigo es porque quiere añadir un shebang en sus scripts y que funcione en todas las distribuciones... bueno, supongo que no se puede hacer. En Arch los PKGBUILD suelen sustituir python por python2 y python3 por python (cuando la situación lo requiere). ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Mar 20 01:47:19 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 20 Mar 2013 01:47:19 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: El 19/03/2013 19:04, "Yamila Moreno Suárez" escribió: > > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo que no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > > ****** Por lo general, depende de cada distribución linux. Lo recomendado es que haya una versión principal e instalar el resto de versiones como alternativas (make altinstall). Así mismo, de cada rama suele haber una versión principal. Por ejemplo, podemos tener estas versiones: python --> python2.7 python2 --> python2.7 python2.7 python2.5 python3 --> python3.2 python3.1 python3.2 python3.3 En arch, por ejemplo, la versión principal es la python3.3, pero en todas las distribuciones tendrás python2 y python3 apuntando a la versión principal de cada rama, respectivamente. Al ser python una pieza fundamental para el buen funcionamiento de una distribución, no se recomienda cambiar los enlaces que te pone el sistema. Si necesitas más control sobre la versiones, te recomiendo usar virtualenv Respondiendo a la pregunta: sí, habrá un día que escribiendo python, jython, pypy, ipy,... arrancará python3 o cualquiera de sus sucesores :D ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Mar 20 03:34:30 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Tue, 19 Mar 2013 23:34:30 -0300 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: Cómo puedo indicar en una aplicación particular, que requiere python 3 para iniciarse ? Al estilo de gstreamer sobre gtk 3 ? import gi gi.require_version('Gst', '1.0') ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Wed Mar 20 10:19:27 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 20 Mar 2013 10:19:27 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: El día 20 de marzo de 2013 03:34, Flavio Danesse escribió: > Cómo puedo indicar en una aplicación particular, que requiere python 3 para > iniciarse ? > > Al estilo de gstreamer sobre gtk 3 ? > > import gi > gi.require_version('Gst', '1.0') Para estas cosas se usan 'sys.version_info' o 'sys.hexversion': import sys if sys.version_info<(3,0): sys.exit("Necesito python 3.0 o superior para funcionar") -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From pych3m4 en gmail.com Wed Mar 20 12:00:55 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 20 Mar 2013 12:00:55 +0100 Subject: [Python-es] El infinito se me queda corto Message-ID: Supongo que habrá una explicación. Si realizo el siguiente cálculo: In [13]: import math In [14]: math.tan(math.pi/2) Out[14]: 1.633123935319537e+16 Aunque no esperaba que me diese la solución correcta de float("+inf")/float("-inf"), me resulta muy corto para el tamaño máximo que podría tener un double: In [16]: sys.float_info.max Out[16]: 1.7976931348623157e+308 He comprobado que pasa lo mismo con scala e, incluso, en el buscador de google (tal vez sea que google usa también python): https://www.google.com/search?q=tan(pi%2F2) ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a infinito (sin ser la solución trivial de comprobar los parámetros de entrada)? -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From davidmenhur en gmail.com Wed Mar 20 12:28:57 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Wed, 20 Mar 2013 12:28:57 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: En Numpy: In [1]: np.tan(np.pi/2) Out[1]: 16331239353195370.0 In [2]: np.log10(np.tan(np.pi/2)) Out[2]: 16.213019143942429 Exactamente el mismo resultado. 2013/3/20 Chema Cortes : > Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > In [13]: import math > > In [14]: math.tan(math.pi/2) > Out[14]: 1.633123935319537e+16 > > Aunque no esperaba que me diese la solución correcta de > float("+inf")/float("-inf"), me resulta muy corto para el tamaño > máximo que podría tener un double: > > In [16]: sys.float_info.max > Out[16]: 1.7976931348623157e+308 > > He comprobado que pasa lo mismo con scala e, incluso, en el buscador > de google (tal vez sea que google usa también python): > > https://www.google.com/search?q=tan(pi%2F2) > > ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a > infinito (sin ser la solución trivial de comprobar los parámetros de > entrada)? > > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From fdanesse en gmail.com Wed Mar 20 12:55:37 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 08:55:37 -0300 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: No, eso no hace lo que yo quiero. Yo quiero que la aplicación se ejecute solo sobre python 3 aunque hayan otras versiones de python en el sistema. O sea, si no se encuentra python 3 que la aplicación no funcione y si se encuentra python 3, se ejecute en esa versión. El 20 de marzo de 2013 06:19, Chema Cortes escribió: > El día 20 de marzo de 2013 03:34, Flavio Danesse > escribió: > > Cómo puedo indicar en una aplicación particular, que requiere python 3 > para > > iniciarse ? > > > > Al estilo de gstreamer sobre gtk 3 ? > > > > import gi > > gi.require_version('Gst', '1.0') > > Para estas cosas se usan 'sys.version_info' o 'sys.hexversion': > > import sys > > if sys.version_info<(3,0): > sys.exit("Necesito python 3.0 o superior para funcionar") > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > 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: From juanlu001 en gmail.com Wed Mar 20 12:58:12 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Wed, 20 Mar 2013 12:58:12 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: <5149A454.7050202@gmail.com> On 03/20/2013 12:00 PM, Chema Cortes wrote: > Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > In [13]: import math > > In [14]: math.tan(math.pi/2) > Out[14]: 1.633123935319537e+16 Y peor: >>> import math >>> math.tan(1 * math.pi / 2) 1.633123935319537e+16 >>> math.tan(3 * math.pi / 2) 5443746451065123.0 >>> math.tan(7 * math.pi / 2) 2333034193313624.5 >>> math.tan(11 * math.pi / 2) 408177829935557.06 >>> math.tan(13 * math.pi / 2) -1020057991976307.8 Cosas del punto flotante. Nada nuevo en realidad : http://aleph.sagemath.org/?z=eJydT0sOgjAQ3XOKCW4gMRWK04-Jd_AKVcBMIm1TysIYj-TKI3Axiahx4cpZvvfmfajzLkSwQ-fPYHqwPkl8IBsh3Q02OmhPLhobm_QNe4IVcNjCZcMQ22vKWhc6EzPr2czlyQJKhrKQWlRcSL1WWiBKrZVWpazWXPJCc1STALlShUJdSSye94qZMrO_PfLZ5DMkNAfqabxbMGFPMZhAZgMooB5vR4quh7qBufuPmV8LsxldQk3TX79FkedfhX_yDwEaZDA=&lang=sage ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From joe en joedicastro.com Wed Mar 20 13:00:05 2013 From: joe en joedicastro.com (joe di castro) Date: Wed, 20 Mar 2013 13:00:05 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: <5149A4C5.7080302@joedicastro.com> Dentro de la documentación del paquete BigFloat (http://pythonhosted.org/bigfloat/#trigonometric-functions) dice algo muy interesante: > Just like Python floats, the printed form of a BigFloat shows only a > decimal approximation to the exact stored value, for the benefit of > > human readers. Puede que por ahí vayan los tiros en este asunto. El 20/03/13 12:00, Chema Cortes escribió: > Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > In [13]: import math > > In [14]: math.tan(math.pi/2) > Out[14]: 1.633123935319537e+16 > > Aunque no esperaba que me diese la solución correcta de > float("+inf")/float("-inf"), me resulta muy corto para el tamaño > máximo que podría tener un double: > > In [16]: sys.float_info.max > Out[16]: 1.7976931348623157e+308 > > He comprobado que pasa lo mismo con scala e, incluso, en el buscador > de google (tal vez sea que google usa también python): > > https://www.google.com/search?q=tan(pi%2F2) > > ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a > infinito (sin ser la solución trivial de comprobar los parámetros de > entrada)? > > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- joe di castro http://joedicastro.com From juanlu001 en gmail.com Wed Mar 20 13:01:02 2013 From: juanlu001 en gmail.com (Juan Luis Cano) Date: Wed, 20 Mar 2013 13:01:02 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: <5149A4FE.2070805@gmail.com> On 03/20/2013 12:00 PM, Chema Cortes wrote: > ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a > infinito (sin ser la solución trivial de comprobar los parámetros de > entrada)? Sí: no uses punto flotante :) http://puntoflotante.org/formats/exact/ tal vez añada esto :P From joe en joedicastro.com Wed Mar 20 13:03:14 2013 From: joe en joedicastro.com (joe di castro) Date: Wed, 20 Mar 2013 13:03:14 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: <5149A4C5.7080302@joedicastro.com> References: <5149A4C5.7080302@joedicastro.com> Message-ID: <5149A582.8010605@joedicastro.com> Perdon, la cita quedo mal, es esta: > Just like Python floats, the printed form of a BigFloat shows only a decimal approximation to the exact stored value, for the benefit of human readers. El 20/03/13 13:00, joe di castro escribió: > Dentro de la documentación del paquete BigFloat > (http://pythonhosted.org/bigfloat/#trigonometric-functions) dice algo > muy interesante: > >> Just like Python floats, the printed form of a BigFloat shows only a > > decimal approximation to the exact stored value, for the benefit of > > > human readers. > > Puede que por ahí vayan los tiros en este asunto. > > > El 20/03/13 12:00, Chema Cortes escribió: >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: >> >> In [13]: import math >> >> In [14]: math.tan(math.pi/2) >> Out[14]: 1.633123935319537e+16 >> >> Aunque no esperaba que me diese la solución correcta de >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño >> máximo que podría tener un double: >> >> In [16]: sys.float_info.max >> Out[16]: 1.7976931348623157e+308 >> >> He comprobado que pasa lo mismo con scala e, incluso, en el buscador >> de google (tal vez sea que google usa también python): >> >> https://www.google.com/search?q=tan(pi%2F2) >> >> ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a >> infinito (sin ser la solución trivial de comprobar los parámetros de >> entrada)? >> >> >> >> -- >> Hyperreals *R: http://ch3m4.org/blog >> Quarks, bits y otras criaturas infinitesimales >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > -- joe di castro http://joedicastro.com From jcaballero.hep en gmail.com Wed Mar 20 12:37:11 2013 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Wed, 20 Mar 2013 07:37:11 -0400 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: Imagino, sin haberlo comprobado, que será por la precisión con la que se define pi. On Mar 20, 2013, at 7:28, Da?id wrote: > En Numpy: > > In [1]: np.tan(np.pi/2) > Out[1]: 16331239353195370.0 > > In [2]: np.log10(np.tan(np.pi/2)) > Out[2]: 16.213019143942429 > > Exactamente el mismo resultado. > > > > 2013/3/20 Chema Cortes : >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: >> >> In [13]: import math >> >> In [14]: math.tan(math.pi/2) >> Out[14]: 1.633123935319537e+16 >> >> Aunque no esperaba que me diese la solución correcta de >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño >> máximo que podría tener un double: >> >> In [16]: sys.float_info.max >> Out[16]: 1.7976931348623157e+308 >> >> He comprobado que pasa lo mismo con scala e, incluso, en el buscador >> de google (tal vez sea que google usa también python): >> >> https://www.google.com/search?q=tan(pi%2F2) >> >> ¿Existe alguna explicación?¿Algún modo de ajustar más el resultado a >> infinito (sin ser la solución trivial de comprobar los parámetros de >> entrada)? >> >> >> >> -- >> Hyperreals *R: http://ch3m4.org/blog >> Quarks, bits y otras criaturas infinitesimales >> _______________________________________________ >> 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/ From jsm en iaa.es Wed Mar 20 13:19:27 2013 From: jsm en iaa.es (=?iso-8859-1?Q?Jos=E9_Sabater_Montes?=) Date: Wed, 20 Mar 2013 12:19:27 +0000 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> Hola, El 20/03/2013, a las 11:00, Chema Cortes escribió: > Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > In [13]: import math > > In [14]: math.tan(math.pi/2) > Out[14]: 1.633123935319537e+16 > > Aunque no esperaba que me diese la solución correcta de > float("+inf")/float("-inf"), me resulta muy corto para el tamaño > máximo que podría tener un double: > > In [16]: sys.float_info.max > Out[16]: 1.7976931348623157e+308 > > He comprobado que pasa lo mismo con scala e, incluso, en el buscador > de google (tal vez sea que google usa también python): > > https://www.google.com/search?q=tan(pi%2F2) > > ¿Existe alguna explicación? >>> import math >>> math.pi/2. 1.5707963267948966 Aparentemente la tangente de ese número con esa precisión es exactamente esa calculando con la precisión de un float. Para aumentar la precisión creo que hay que usar una librería que ofrezca precisión arbitraria como el módulo "decimal" de la librería estándar o mpmath. El problema con "decimal" es que no implementa funciones matemáticas un poco más complejas como las trigonométricas, así que el resultado de la tangente sería el mismo si se usan las mismas funciones que antes. >>> from decimal import Decimal >>> pi_dec = Decimal('3.1415926535897932384626433832795028841971693993751') >>> pi_dec Decimal('3.1415926535897932384626433832795028841971693993751') >>> pi_dec/Decimal('2') Decimal('1.570796326794896619231321692') >>> math.tan(pi_dec/Decimal('2')) 1.633123935319537e+16 Si no me equivoco, las funciones trigonométricas se suelen calcular usando series. Una buena librería de precisión arbitraria (supongo que todas) irá adaptando el número de sumandos a la precisión requerida. Por ejemplo: >>> from mpmath import * >>> tan(1.5707963267948966) mpf('16331239353195370.0') >>> tan(pi/2) mpf('16331239353195370.0') Aumentamos la precisión >>> mp.dps = 50 >>> tan(1.5707963267948966) mpf('16331239353195369.755967737041528916530864068104910291') >>> tan(pi/2) mpf('-1978834901269570871682051952580899049722178117311132.0') >>> tan(mpf('1.5707963267948966192313216916397514420985846996875534')) mpf('-1978834901269570871682051952580899049722178117311132.0') > ¿Algún modo de ajustar más el resultado a > infinito (sin ser la solución trivial de comprobar los parámetros de > entrada)? Creo que la única opción es usar un módulo matemático de precisión arbitraria como mpmath o bigfloat. Un saludo. From kikocorreoso en gmail.com Wed Mar 20 13:30:34 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 20 Mar 2013 13:30:34 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: El 20 de marzo de 2013 12:37, Jose Caballero escribió: > Imagino, sin haberlo comprobado, que será por la precisión con la que se > define pi. > > He usado un pi definido por mi con 100 decimales y el módulo decimal y sale lo mismo (con numpy me da error si uso Decimal con una precisión muy alta ¿?, si convierto el Decimal a np.float96 me da lo mismo). Como pruebas, he usado (sin z/cos z) en lugar de la tangente y da cosas similares con valores muy diferentes según la precisión del decimal pero a partir de un valor para la precisión el resultado ya no varía: In [113]: decimal.getcontext().prec = 16 In [114]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[114]: -2611942160735615.5 In [115]: decimal.getcontext().prec = 32 In [116]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[116]: 1.633123935319537e+16 In [117]: decimal.getcontext().prec = 64 In [118]: math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[118]: 1.633123935319537e+16 ... In [125]: decimal.getcontext().prec = 16 In [126]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[126]: -2611942160735615.5 In [127]: decimal.getcontext().prec = 32 In [128]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[128]: 1.633123935319537e+16 In [129]: decimal.getcontext().prec = 64 In [130]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) Out[130]: 1.633123935319537e+16 ... Si hago, np.isinf(np.tan(np.pi/2)) me da, obviamente, False... :-P ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Wed Mar 20 13:40:23 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Wed, 20 Mar 2013 12:40:23 +0000 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: Message-ID: Imagino que si usas math.XXXX, primero habrá una conversión coercitiva al tipo que use math internamente, que será float64, imagino, así que da igual lo que le pases, al final la precisión será la que ofrezca la librería. Como dice J. Sabater, para obtener mayor precisión habrá que usar librerías que la admitan. 2013/3/20 Kiko > > > El 20 de marzo de 2013 12:37, Jose Caballero escribió: > > Imagino, sin haberlo comprobado, que será por la precisión con la que se >> define pi. >> >> > He usado un pi definido por mi con 100 decimales y el módulo decimal y > sale lo mismo (con numpy me da error si uso Decimal con una precisión muy > alta ¿?, si convierto el Decimal a np.float96 me da lo mismo). > > Como pruebas, he usado (sin z/cos z) en lugar de la tangente y da cosas > similares con valores muy diferentes según la precisión del decimal pero a > partir de un valor para la precisión el resultado ya no varía: > > In [113]: decimal.getcontext().prec = 16 > > In [114]: > math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[114]: -2611942160735615.5 > > In [115]: decimal.getcontext().prec = 32 > > In [116]: > math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[116]: 1.633123935319537e+16 > > In [117]: decimal.getcontext().prec = 64 > > In [118]: > math.sin(decimal.Decimal(math.pi)/decimal.Decimal(2))/math.cos(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[118]: 1.633123935319537e+16 > ... > > In [125]: decimal.getcontext().prec = 16 > > In [126]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[126]: -2611942160735615.5 > > In [127]: decimal.getcontext().prec = 32 > > In [128]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[128]: 1.633123935319537e+16 > > In [129]: decimal.getcontext().prec = 64 > > In [130]: math.tan(decimal.Decimal(math.pi)/decimal.Decimal(2)) > Out[130]: 1.633123935319537e+16 > ... > > > Si hago, np.isinf(np.tan(np.pi/2)) me da, obviamente, False... :-P > > > > _______________________________________________ > 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: From pych3m4 en gmail.com Wed Mar 20 14:02:02 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Wed, 20 Mar 2013 14:02:02 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> Message-ID: El día 20 de marzo de 2013 13:19, José Sabater Montes escribió: > > Hola, > > El 20/03/2013, a las 11:00, Chema Cortes escribió: > >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: >> >> In [13]: import math >> >> In [14]: math.tan(math.pi/2) >> Out[14]: 1.633123935319537e+16 >> >> Aunque no esperaba que me diese la solución correcta de >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño >> máximo que podría tener un double: >> >> In [16]: sys.float_info.max >> Out[16]: 1.7976931348623157e+308 >> >> He comprobado que pasa lo mismo con scala e, incluso, en el buscador >> de google (tal vez sea que google usa también python): >> >> https://www.google.com/search?q=tan(pi%2F2) >> >> ¿Existe alguna explicación? > >>>> import math >>>> math.pi/2. > 1.5707963267948966 > > Aparentemente la tangente de ese número con esa precisión es exactamente esa calculando con la precisión de un float. > Para aumentar la precisión creo que hay que usar una librería que ofrezca precisión arbitraria como el módulo "decimal" de la librería estándar o mpmath. > El problema con "decimal" es que no implementa funciones matemáticas un poco más complejas como las trigonométricas, así que el resultado de la tangente sería el mismo si se usan las mismas funciones que antes. > >>>> from decimal import Decimal >>>> pi_dec = Decimal('3.1415926535897932384626433832795028841971693993751') >>>> pi_dec > Decimal('3.1415926535897932384626433832795028841971693993751') >>>> pi_dec/Decimal('2') > Decimal('1.570796326794896619231321692') >>>> math.tan(pi_dec/Decimal('2')) > 1.633123935319537e+16 > > Si no me equivoco, las funciones trigonométricas se suelen calcular usando series. Una buena librería de precisión arbitraria (supongo que todas) irá adaptando el número de sumandos a la precisión requerida. Por ejemplo: > >>>> from mpmath import * >>>> tan(1.5707963267948966) > mpf('16331239353195370.0') >>>> tan(pi/2) > mpf('16331239353195370.0') > > Aumentamos la precisión > >>>> mp.dps = 50 >>>> tan(1.5707963267948966) > mpf('16331239353195369.755967737041528916530864068104910291') >>>> tan(pi/2) > mpf('-1978834901269570871682051952580899049722178117311132.0') >>>> tan(mpf('1.5707963267948966192313216916397514420985846996875534')) > mpf('-1978834901269570871682051952580899049722178117311132.0') > > >> ¿Algún modo de ajustar más el resultado a >> infinito (sin ser la solución trivial de comprobar los parámetros de >> entrada)? > > Creo que la única opción es usar un módulo matemático de precisión arbitraria como mpmath o bigfloat. Por lo que parece, la tendencia a infinito está en relación con la precisión del cálculo. Cuanto más digitos de precisión, tanto más grande será el número Comprobando con mpmath: dps resultado aprox. ------ | ----------------------- 10 390115388672.0 15 1.63312393531954e+16 50 -1.97883490126957e+51 100 6.97133053829442e+101 300 1.59802604184178e+301 1000 2.84594257232622e+1001 5000 -1.04829403956079e+5001 10000 -7.59194855601038e+10001 12000 8.19055339712727e+12001 15000 1.18530955294349e+15001 20000 1.34274677646898e+20001 30000 -1.14011942791359e+30001 El que alternen los signos supongo que será cosa del algorítmo de aproximación. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From inigo_aldazabal en ehu.es Wed Mar 20 14:13:36 2013 From: inigo_aldazabal en ehu.es (Inigo Aldazabal Mensa) Date: Wed, 20 Mar 2013 14:13:36 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> Message-ID: <20130320141336.6b69faee@U002498.sn.ehu.es> On Wed, 20 Mar 2013 14:02:02 +0100 Chema Cortes wrote: > El día 20 de marzo de 2013 13:19, José Sabater Montes > escribió: > > > > Hola, > > > > El 20/03/2013, a las 11:00, Chema Cortes escribió: > > > >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: > >> > >> In [13]: import math > >> > >> In [14]: math.tan(math.pi/2) > >> Out[14]: 1.633123935319537e+16 > >> > >> Aunque no esperaba que me diese la solución correcta de > >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño > >> máximo que podría tener un double: > >> > >> In [16]: sys.float_info.max > >> Out[16]: 1.7976931348623157e+308 > >> > >> He comprobado que pasa lo mismo con scala e, incluso, en el > >> buscador de google (tal vez sea que google usa también python): > >> > >> https://www.google.com/search?q=tan(pi%2F2) > >> > >> ¿Existe alguna explicación? > > > >>>> import math > >>>> math.pi/2. > > 1.5707963267948966 > > > > Aparentemente la tangente de ese número con esa precisión es > > exactamente esa calculando con la precisión de un float. Para > > aumentar la precisión creo que hay que usar una librería que > > ofrezca precisión arbitraria como el módulo "decimal" de la > > librería estándar o mpmath. El problema con "decimal" es que no > > implementa funciones matemáticas un poco más complejas como las > > trigonométricas, así que el resultado de la tangente sería el mismo > > si se usan las mismas funciones que antes. > > > >>>> from decimal import Decimal > >>>> pi_dec = > >>>> Decimal('3.1415926535897932384626433832795028841971693993751') > >>>> pi_dec > > Decimal('3.1415926535897932384626433832795028841971693993751') > >>>> pi_dec/Decimal('2') > > Decimal('1.570796326794896619231321692') > >>>> math.tan(pi_dec/Decimal('2')) > > 1.633123935319537e+16 > > > > Si no me equivoco, las funciones trigonométricas se suelen calcular > > usando series. Una buena librería de precisión arbitraria (supongo > > que todas) irá adaptando el número de sumandos a la precisión > > requerida. Por ejemplo: > > > >>>> from mpmath import * > >>>> tan(1.5707963267948966) > > mpf('16331239353195370.0') > >>>> tan(pi/2) > > mpf('16331239353195370.0') > > > > Aumentamos la precisión > > > >>>> mp.dps = 50 > >>>> tan(1.5707963267948966) > > mpf('16331239353195369.755967737041528916530864068104910291') > >>>> tan(pi/2) > > mpf('-1978834901269570871682051952580899049722178117311132.0') > >>>> tan(mpf('1.5707963267948966192313216916397514420985846996875534')) > > mpf('-1978834901269570871682051952580899049722178117311132.0') > > > > > >> ¿Algún modo de ajustar más el resultado a > >> infinito (sin ser la solución trivial de comprobar los parámetros > >> de entrada)? > > > > Creo que la única opción es usar un módulo matemático de precisión > > arbitraria como mpmath o bigfloat. > > > Por lo que parece, la tendencia a infinito está en relación con la > precisión del cálculo. Cuanto más digitos de precisión, tanto más > grande será el número > > Comprobando con mpmath: > > dps resultado aprox. > ------ | ----------------------- > 10 390115388672.0 > 15 1.63312393531954e+16 > 50 -1.97883490126957e+51 > 100 6.97133053829442e+101 > 300 1.59802604184178e+301 > 1000 2.84594257232622e+1001 > 5000 -1.04829403956079e+5001 > 10000 -7.59194855601038e+10001 > 12000 8.19055339712727e+12001 > 15000 1.18530955294349e+15001 > 20000 1.34274677646898e+20001 > 30000 -1.14011942791359e+30001 > > El que alternen los signos supongo que será cosa del algorítmo de > aproximación. Posiblemente sea debido a que según el redondeo de la última cifra significativa para la aproximación de pi/2 en unos casos el valor numérico esté a la derecha de pi/2 y en otros a la izquierda. > > > -- > Hyperreals *R: http://ch3m4.org/blog > Quarks, bits y otras criaturas infinitesimales > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From angel en angel-alvarez.com.ar Wed Mar 20 14:58:27 2013 From: angel en angel-alvarez.com.ar (Angel Claudio Alvarez) Date: Wed, 20 Mar 2013 10:58:27 -0300 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: <20130320105827.28b894a6be8f94155fe4b976@angel-alvarez.com.ar> El Wed, 20 Mar 2013 08:55:37 -0300 Flavio Danesse escribió: > No, eso no hace lo que yo quiero. > > Yo quiero que la aplicación se ejecute solo sobre python 3 aunque hayan > otras versiones de python en el sistema. > > O sea, si no se encuentra python 3 que la aplicación no funcione y si se > encuentra python 3, se ejecute en esa versión. > Si estas en linux o bsd indicale en la primera linea el ejecutable #!/ruta_a/tu_version/de_python3 > > > > El 20 de marzo de 2013 06:19, Chema Cortes escribió: > > > El día 20 de marzo de 2013 03:34, Flavio Danesse > > escribió: > > > Cómo puedo indicar en una aplicación particular, que requiere python 3 > > para > > > iniciarse ? > > > > > > Al estilo de gstreamer sobre gtk 3 ? > > > > > > import gi > > > gi.require_version('Gst', '1.0') > > > > Para estas cosas se usan 'sys.version_info' o 'sys.hexversion': > > > > import sys > > > > if sys.version_info<(3,0): > > sys.exit("Necesito python 3.0 o superior para funcionar") > > > > > > -- > > Hyperreals *R: http://ch3m4.org/blog > > Quarks, bits y otras criaturas infinitesimales > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > -- Angel Claudio Alvarez From carlos.zun en gmail.com Wed Mar 20 15:47:00 2013 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Wed, 20 Mar 2013 09:47:00 -0500 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: 2013/3/20 Flavio Danesse : > No, eso no hace lo que yo quiero. > > Yo quiero que la aplicación se ejecute solo sobre python 3 aunque hayan > otras versiones de python en el sistema. > > O sea, si no se encuentra python 3 que la aplicación no funcione y si se > encuentra python 3, se ejecute en esa versión. > Tendrías que hacer un script que busque al ejecutable de python, chequee la version y lo ejecute, por ejemplo en bash: #!/bin/sh SCRIPT=/path/to/script.py for BIN in python3.2 python3 python /some/other/python; do BIN_PATH=`which $BIN` if [ -n "$BIN_PATH" ]; then VERSION=`$BIN --version 2>&1 | grep 'Python 3'` if [ -n "$VERSION" ]; then break fi fi done if [ -z "$FOUND"]; then echo "No se encontró la version de python requerida" exit 1 fi exec $BIN $SCRIPT $@ Pero para llegar a ese extremo, tendría que ser un sistema bien raro ;) Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From carlos.zun en gmail.com Wed Mar 20 15:48:52 2013 From: carlos.zun en gmail.com (Carlos Zuniga) Date: Wed, 20 Mar 2013 09:48:52 -0500 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: 2013/3/20 Carlos Zuniga : > 2013/3/20 Flavio Danesse : >> No, eso no hace lo que yo quiero. >> >> Yo quiero que la aplicación se ejecute solo sobre python 3 aunque hayan >> otras versiones de python en el sistema. >> >> O sea, si no se encuentra python 3 que la aplicación no funcione y si se >> encuentra python 3, se ejecute en esa versión. >> > > Tendrías que hacer un script que busque al ejecutable de python, > chequee la version y lo ejecute, por ejemplo en bash: > > #!/bin/sh > SCRIPT=/path/to/script.py > for BIN in python3.2 python3 python /some/other/python; do > BIN_PATH=`which $BIN` > if [ -n "$BIN_PATH" ]; then > VERSION=`$BIN --version 2>&1 | grep 'Python 3'` > if [ -n "$VERSION" ]; then FOUND=1 > break > fi > fi > done > if [ -z "$FOUND"]; then > echo "No se encontró la version de python requerida" > exit 1 > fi > exec $BIN $SCRIPT $@ > > > Pero para llegar a ese extremo, tendría que ser un sistema bien raro ;) > Sorry, una corrección, faltó una linea antes del break. Saludos -- A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales. From niwi en niwi.be Wed Mar 20 18:01:32 2013 From: niwi en niwi.be (Andrey Antukh) Date: Wed, 20 Mar 2013 18:01:32 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: Hola. Veo de responder a las preguntas iniciales: Ahora respondiendo a las preguntas. Técnicamente siempre se llamara python3 a menos que algunas distros lo renombren como quieran (siempre hacen de las suyas). Cada distribución hacen lo que quieren ellos, por lo que no es dependientes de python: En archlinux python apunta a python3 por defecto y aquello que tiene que correr con python2.x apunta a python2 explicitamente. En debian-like es totalmente al revés. Respeto a como ejecutarlo: #!/usr/bin/env python2 -> si quieres que explicitamente se ejecute con python2 #!/usr/bin/env python3 -> si quieres que explicitamente se ejecute con python3 #!/usr/bin/env python -> si te es independiente (en arch lo ejecutaría con python3, y en debian lo ejecutaría con python2) Las dos opciones son independientes de la distribución, debido a que los binarios "python2" y "python3" se crean por defecto. Andrey El 20 de marzo de 2013 15:48, Carlos Zuniga escribió: > 2013/3/20 Carlos Zuniga : > > 2013/3/20 Flavio Danesse : > >> No, eso no hace lo que yo quiero. > >> > >> Yo quiero que la aplicación se ejecute solo sobre python 3 aunque hayan > >> otras versiones de python en el sistema. > >> > >> O sea, si no se encuentra python 3 que la aplicación no funcione y si se > >> encuentra python 3, se ejecute en esa versión. > >> > > > > Tendrías que hacer un script que busque al ejecutable de python, > > chequee la version y lo ejecute, por ejemplo en bash: > > > > #!/bin/sh > > SCRIPT=/path/to/script.py > > for BIN in python3.2 python3 python /some/other/python; do > > BIN_PATH=`which $BIN` > > if [ -n "$BIN_PATH" ]; then > > VERSION=`$BIN --version 2>&1 | grep 'Python 3'` > > if [ -n "$VERSION" ]; then > FOUND=1 > > break > > fi > > fi > > done > > if [ -z "$FOUND"]; then > > echo "No se encontró la version de python requerida" > > exit 1 > > fi > > exec $BIN $SCRIPT $@ > > > > > > Pero para llegar a ese extremo, tendría que ser un sistema bien raro ;) > > > > Sorry, una corrección, faltó una linea antes del break. > > Saludos > -- > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > 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 - ?????? ????? - 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: From ddellaquila en gmail.com Wed Mar 20 18:02:40 2013 From: ddellaquila en gmail.com (Danilo Dellaquila) Date: Wed, 20 Mar 2013 18:02:40 +0100 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: References: Message-ID: <5149EBB0.40704@gmail.com> Hola, en Ubuntu el python oficial del sistema se llama simplemente python y su versión es la 2.7, puedes comprobarlo con los siguientes comandos (en mi caso es Ubuntu 12.04): $ which python /usr/bin/python $ python Python 2.7.3 (default, Aug 1 2012, 05:14:39) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ El Python 3.x es un paquete opcional que se instala con $ sudo apt-get install python3 ... y el comando a usar es python3 $ which python3 /usr/bin/python3 $ python3 Python 3.2.3 (default, Oct 19 2012, 20:10:41) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> $ esto sirve para diferenciarlo del python "oficialmente soportado" por Ubuntu y hacer que lo programas del sistema sigan usando la versión 2.7 Supongo que en el futuro, cuando Ubuntu se pase as usar oficialmente python 3 como versión por defecto, la nomenclatura cambiará en algo así: el comando 'python' ejecutará la versión 3 y por la versión 2 será python2. Para usar el Python3 en tu scripts, las indicaciones proveídas en los demás correos son correctas (cambiare el PATH, el shebang etc) pero quiero añadir también el uso de entorno virtuales (virtualenv). Con virtualenv, puedes instalar distintas versiones de Python en un mismo sistema, por ejemplo la 2.6, 2.7, 3.2, 3.3 y configurar tus aplicaciones para que usen el entorno más apropiado. Además, esta es una manera aconsejable si quieres que tu aplicaciones no dependa del python del sistema operativo. Existe un documento en castellano, escrito por Leonardo Caballero, sobre virtualenv y lo puedes encontrar aqui: http://plone-spanish-docs.readthedocs.org/en/latest/python/creacion_entornos_virtuales.html Saludos, Danilo On 19/03/13 18:34, Yamila Moreno Suárez wrote: > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo > que no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > > ****** > > Un saludo, > yami > > -- > Yamila Moreno Suárez > http://dendarii.wordpress.com > http://moduslaborandi.net > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ -- Danilo Dellaquila Director Técnico K-Gigas Computers S.L. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Empresa: http://www.k-gigas.com Blog: http://danilodellaquila.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From diego.uribe.gamez en gmail.com Wed Mar 20 18:19:25 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 20 Mar 2013 12:19:25 -0500 Subject: [Python-es] Problemas de encoding json utf-8 Message-ID: Buenos días, resulta que estoy haciendo intentando codificar un json pero tengo problemas de encoding, por lo que entiendo json solo me permite utf-8 pero nada que logro codificar bien las tildes, var = "texto con tildes, Categorías " Cadena['texto'] = var.encode('utf-8') Cadena = json.dumps(Cadena) me sale este error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 26: ordinal not in range(128) Gracias. por la ayuda. -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From a.chamorro.ruiz en gmail.com Wed Mar 20 18:25:07 2013 From: a.chamorro.ruiz en gmail.com (Alberto Chamorro) Date: Wed, 20 Mar 2013 18:25:07 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Wed Mar 20 18:56:43 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 20 Mar 2013 12:56:43 -0500 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From quiqueporta en gmail.com Wed Mar 20 19:10:25 2013 From: quiqueporta en gmail.com (Quique Porta) Date: Wed, 20 Mar 2013 19:10:25 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: ¿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 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 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 > > 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From a.chamorro.ruiz en gmail.com Wed Mar 20 19:33:16 2013 From: a.chamorro.ruiz en gmail.com (Alberto Chamorro) Date: Wed, 20 Mar 2013 19:33:16 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas? On Mar 20, 2013 7:12 PM, "Quique Porta" 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 > > 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 >> >> 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From stvzito en gmail.com Wed Mar 20 19:35:05 2013 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Wed, 20 Mar 2013 12:35:05 -0600 Subject: [Python-es] Copiar archivos Message-ID: Buen dia lista Estoy haciendo un pequeño script que vverifica los archivos registrados en la base de datos. El detalle es que debo copiar los archivos que pertenecen a esa relación y algunos de los archivos en el directorio tienen en su nombre caracteres adicionales. Por ejemplo: Mi relación es: C00001 C00002 Y en el directorio estan como: CGC0001-ri Cabe mencionar que en directorio hay cientos de miles de archivos. Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto no me funciona, o tal vez lo estoy usando de forma incorrecta. Gracias de antemano por el apoyo. Saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Wed Mar 20 19:35:39 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 20 Mar 2013 13:35:39 -0500 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 escribió: > Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas? > On Mar 20, 2013 7:12 PM, "Quique Porta" 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 >>> >>> 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 Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Mar 20 19:44:56 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 15:44:56 -0300 Subject: [Python-es] Preguntas sobre python3 y nomenclatura In-Reply-To: <5149EBB0.40704@gmail.com> References: <5149EBB0.40704@gmail.com> Message-ID: Gracias !! Era más sencillo de lo que pensé. El 20 de marzo de 2013 14:02, Danilo Dellaquila escribió: > Hola, > > en Ubuntu el python oficial del sistema se llama simplemente python y su > versión es la 2.7, puedes comprobarlo con los siguientes comandos (en mi > caso es Ubuntu 12.04): > > $ which python > /usr/bin/python > $ python > Python 2.7.3 (default, Aug 1 2012, 05:14:39) > [GCC 4.6.3] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > >>> > $ > > El Python 3.x es un paquete opcional que se instala con > > $ sudo apt-get install python3 > > ... y el comando a usar es python3 > > $ which python3 > /usr/bin/python3 > $ python3 > Python 3.2.3 (default, Oct 19 2012, 20:10:41) > [GCC 4.6.3] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > >>> > $ > > esto sirve para diferenciarlo del python "oficialmente soportado" por > Ubuntu y hacer que lo programas del sistema sigan usando la versión 2.7 > > Supongo que en el futuro, cuando Ubuntu se pase as usar oficialmente > python 3 como versión por defecto, la nomenclatura cambiará en algo así: el > comando 'python' ejecutará la versión 3 y por la versión 2 será python2. > > Para usar el Python3 en tu scripts, las indicaciones proveídas en los > demás correos son correctas (cambiare el PATH, el shebang etc) pero quiero > añadir también el uso de entorno virtuales (virtualenv). > > Con virtualenv, puedes instalar distintas versiones de Python en un mismo > sistema, por ejemplo la 2.6, 2.7, 3.2, 3.3 y configurar tus aplicaciones > para que usen el entorno más apropiado. Además, esta es una manera > aconsejable si quieres que tu aplicaciones no dependa del python del > sistema operativo. > > Existe un documento en castellano, escrito por Leonardo Caballero, sobre > virtualenv y lo puedes encontrar aqui: > > > http://plone-spanish-docs.readthedocs.org/en/latest/python/creacion_entornos_virtuales.html > > Saludos, > Danilo > > > On 19/03/13 18:34, Yamila Moreno Suárez wrote: > > ¡Buenas! > > Un amigo me pasa esta consulta sobre el nombre de 'python' y me temo que > no sé contestar a casi ninguna pregunta. ¿Alguna idea? ¡Mil gracias! > > ***** > > Python 3, ¿se va a llamar siempre python3? ¿O cuando se consolide se > llamará python a secas? ¿Habrá algún día en que al escribir python > arranque python3? ¿Y sabes algo de python3-config? ¿Pasará lo mismo? > > Eso de llamar python3 a Python, ¿es algo de debian o ubuntu solo? ¿O > es así en todas las distribuciones? > > ****** > > Un saludo, > yami > > -- > Yamila Moreno Suárez > http://dendarii.wordpress.com > http://moduslaborandi.net > > > _______________________________________________ > Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > -- > Danilo Dellaquila > Director Técnico > K-Gigas Computers S.L. > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Empresa: http://www.k-gigas.com > Blog: http://danilodellaquila.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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Mar 20 19:50:08 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 15:50:08 -0300 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: if 'C00001' in filename: copiar El 20 de marzo de 2013 15:35, Manuel A. Estevez Fernandez escribió: > Buen dia lista > Estoy haciendo un pequeño script que vverifica los archivos registrados en > la base de datos. El detalle es que debo copiar los archivos que pertenecen > a esa relación y algunos de los archivos en el directorio tienen en su > nombre caracteres adicionales. Por ejemplo: > Mi relación es: > C00001 > C00002 > Y en el directorio estan como: > CGC0001-ri > > Cabe mencionar que en directorio hay cientos de miles de archivos. > > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto no > me funciona, o tal vez lo estoy usando de forma incorrecta. > > Gracias de antemano por el apoyo. > > Saludos > > _______________________________________________ > 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: From quiqueporta en gmail.com Wed Mar 20 19:52:45 2013 From: quiqueporta en gmail.com (Quique Porta) Date: Wed, 20 Mar 2013 19:52:45 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: Este vídeo te puede ser útil para estas cosas ;) http://www.youtube.com/watch?v=IZ7qVoO-l-E El 20 de marzo de 2013 19:35, Diego Uribe Gamez 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 escribió: > > Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas? >> On Mar 20, 2013 7:12 PM, "Quique Porta" 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 >>>> >>>> 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 > > 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Mar 20 19:53:46 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 15:53:46 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: import simplejson archivo = open(path, 'w') archivo.write(simplejson.dumps(salida)) archivo.close() El 20 de marzo de 2013 15:35, Diego Uribe Gamez 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 escribió: > > Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas? >> On Mar 20, 2013 7:12 PM, "Quique Porta" 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 >>>> >>>> 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 > > 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kikocorreoso en gmail.com Wed Mar 20 19:59:02 2013 From: kikocorreoso en gmail.com (Kiko) Date: Wed, 20 Mar 2013 19:59:02 +0100 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: El 20 de marzo de 2013 19:35, Manuel A. Estevez Fernandez escribió: > Buen dia lista > Estoy haciendo un pequeño script que vverifica los archivos registrados en > la base de datos. El detalle es que debo copiar los archivos que pertenecen > a esa relación y algunos de los archivos en el directorio tienen en su > nombre caracteres adicionales. Por ejemplo: > Mi relación es: > C00001 > C00002 > Y en el directorio estan como: > CGC0001-ri > > Cabe mencionar que en directorio hay cientos de miles de archivos. > > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto no > me funciona, o tal vez lo estoy usando de forma incorrecta. > > Gracias de antemano por el apoyo. > > Saludos > El módulo glob te podría resultar útil para encontrar todas las coincidencias de tu lista de ficheros que quieres copiar si siempre se repite el mismo patrón o similar: *from glob import glob relacion = ['C00001', 'C00002'] for fich in relacion: posibles_ficheros = glob('ruta/a/los/ficheros/a/copiar/*{}*'.format(fich)) # Copiar los ficheros que estén en posibles_ficheros a la carpeta que quieras * Supongo que en breve alguien te aportará una solución más inteligente :-P ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From davidmenhur en gmail.com Wed Mar 20 19:58:51 2013 From: davidmenhur en gmail.com (=?UTF-8?B?RGHPgGlk?=) Date: Wed, 20 Mar 2013 19:58:51 +0100 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: 2013/3/20 Manuel A. Estevez Fernandez : > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto no me > funciona, o tal vez lo estoy usando de forma incorrecta. Si el nombre es el mismo, salvo unos caracteres adicionales al final (y sólo hay un archivo que cumpla esto): name_rel = 'C00002' fname = glob.glob(name_rel + '*')[0] shutil.copy2(fname .....) glob.glob es más o menos el equivalente pythónico al commando: ls C00002* From stvzito en gmail.com Wed Mar 20 20:20:05 2013 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Wed, 20 Mar 2013 13:20:05 -0600 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: Voy a probar con el glob siguiendo con la sugerencia de Da?id y de Kiko. Flavio lo pensé pero tengo que buscar varios (cientos) entre cientos de miles. Saludos. by: ISC. Manuel Alejandro Estévez Fernández El 20 de marzo de 2013 12:58, Da?id escribió: > 2013/3/20 Manuel A. Estevez Fernandez : > > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto > no me > > funciona, o tal vez lo estoy usando de forma incorrecta. > > Si el nombre es el mismo, salvo unos caracteres adicionales al final > (y sólo hay un archivo que cumpla esto): > > > name_rel = 'C00002' > fname = glob.glob(name_rel + '*')[0] > shutil.copy2(fname .....) > > glob.glob es más o menos el equivalente pythónico al commando: > > ls C00002* > _______________________________________________ > 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: From niwi en niwi.be Wed Mar 20 20:20:07 2013 From: niwi en niwi.be (Andrey Antukh) Date: Wed, 20 Mar 2013 20:20:07 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: El 20 de marzo de 2013 19:53, Flavio Danesse 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 > > escribió: >> >> Aun asi da cosa ver ASCII Java program text! ¿Que editor utilizas? >>> On Mar 20, 2013 7:12 PM, "Quique Porta" 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 >>>>> >>>>> 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 >> >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Wed Mar 20 20:29:52 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 16:29:52 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 escribió: > El 20 de marzo de 2013 19:53, Flavio Danesse 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" 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 >>>>>> >>>>>> 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 >>> >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Wed Mar 20 20:40:30 2013 From: niwi en niwi.be (Andrey Antukh) Date: Wed, 20 Mar 2013 20:40:30 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 escribió: > > El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>> 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 >>>>>>> >>>>>>> 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 >>>> >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Wed Mar 20 20:52:04 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 16:52:04 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 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 escribió: >> >> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>> 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 >>>>>>>> >>>>>>>> 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 >>>>> >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Wed Mar 20 21:31:22 2013 From: niwi en niwi.be (Andrey Antukh) Date: Wed, 20 Mar 2013 21:31:22 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 "", line 1, in KeyError: 1 >>> print kk2["1"] kákà Andrey El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>> >>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>> 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 >>>>>>>>> >>>>>>>>> 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 >>>>>> >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Wed Mar 20 23:36:27 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 19:36:27 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 "", line 1, in > KeyError: 1 > >>> print kk2["1"] > kákà > > Andrey > > > El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>> >>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> 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 >>>>>>> >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Wed Mar 20 23:41:21 2013 From: niwi en niwi.be (Andrey Antukh) Date: Wed, 20 Mar 2013 23:41:21 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 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 "", line 1, in >> KeyError: 1 >> >>> print kk2["1"] >> kákà >> >> Andrey >> >> >> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>> >>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>> 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 >>>>>>>>>>> >>>>>>>>>>> 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 >>>>>>>> >>>>>>>> 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 - ?????? ????? - >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From diego.uribe.gamez en gmail.com Wed Mar 20 23:44:48 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 20 Mar 2013 17:44:48 -0500 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: ok, regresando yo al tema, ese es el problema que tengo,pero también encontré un error de programación en un programa externo al que consulto. por otro lado me quedan resueltas las dudas con el vídeo. creo que si hay anidados tipos de encoding lo mejor es repararlos o quejarse con el programador de eso, porque te tocaría codificar la cadena de texto en bits y eso es jodido, ademas de que si no sabes el encoding no hay forma de saber cual el, puede aproximarte y trabajar pero nunca saber cual es. Mira el vídeo. Saludos El 20 de marzo de 2013 17:41, Andrey Antukh 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 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 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 "", line 1, in >>> KeyError: 1 >>> >>> print kk2["1"] >>> kákà >>> >>> Andrey >>> >>> >>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>> >>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>>> 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 >>>>>>>>> >>>>>>>>> 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 - ?????? ????? - >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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/ > > -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego.uribe.gamez en gmail.com Wed Mar 20 23:46:05 2013 From: diego.uribe.gamez en gmail.com (Diego Uribe Gamez) Date: Wed, 20 Mar 2013 17:46:05 -0500 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: http://www.youtube.com/watch?v=IZ7qVoO-l-E El 20 de marzo de 2013 17:44, Diego Uribe Gamez escribió: > ok, regresando yo al tema, ese es el problema que > tengo,pero también encontré un error de programación en un programa externo > al que consulto. > > por otro lado me quedan resueltas las dudas con el vídeo. > > creo que si hay anidados tipos de encoding lo mejor es repararlos o > quejarse con el programador de eso, porque te tocaría codificar la cadena > de texto en bits y eso es jodido, ademas de que si no sabes el encoding no > hay forma de saber cual el, puede aproximarte y trabajar pero nunca saber > cual es. > > Mira el vídeo. > > Saludos > > > El 20 de marzo de 2013 17:41, Andrey Antukh 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 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 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 "", line 1, in >>>> KeyError: 1 >>>> >>> print kk2["1"] >>>> kákà >>>> >>>> Andrey >>>> >>>> >>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>> >>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> 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 - ?????? ????? - >>>>>>>> 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 - ?????? ????? - >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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/ >> >> > > > -- > *Diego Alonso Uribe Gamez* > ------------------------------ > > *Desarrollador web* > > Twitter: @DiegoUG > > Google+: http://gplus.to/diegoug > ------------------------------ > > -- *Diego Alonso Uribe Gamez* ------------------------------ *Desarrollador web* Twitter: @DiegoUG Google+: http://gplus.to/diegoug ------------------------------ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From fdanesse en gmail.com Wed Mar 20 23:45:13 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 19:45:13 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: *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 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 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 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 "", line 1, in >>> KeyError: 1 >>> >>> print kk2["1"] >>> kákà >>> >>> Andrey >>> >>> >>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>> >>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>>> 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 >>>>>>>>> >>>>>>>>> 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 - ?????? ????? - >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Thu Mar 21 00:17:14 2013 From: niwi en niwi.be (Andrey Antukh) Date: Thu, 21 Mar 2013 00:17:14 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 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 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 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 "", line 1, in >>>> KeyError: 1 >>>> >>> print kk2["1"] >>>> kákà >>>> >>>> Andrey >>>> >>>> >>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>> >>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> 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 - ?????? ????? - >>>>>>>> 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 - ?????? ????? - >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Thu Mar 21 00:26:45 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 20:26:45 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 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 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 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 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 "", line 1, in >>>>> KeyError: 1 >>>>> >>> print kk2["1"] >>>>> kákà >>>>> >>>>> Andrey >>>>> >>>>> >>>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>>> >>>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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" >>>>>>>>>>>> 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 >>>>>>>>>>>>>> >>>>>>>>>>>>>> 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 >>>>>>>>>>> >>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>> 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 - ?????? ????? - >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Thu Mar 21 00:41:34 2013 From: niwi en niwi.be (Andrey Antukh) Date: Thu, 21 Mar 2013 00:41:34 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 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 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 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 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 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 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 "", line 1, in >>>>>> KeyError: 1 >>>>>> >>> print kk2["1"] >>>>>> kákà >>>>>> >>>>>> Andrey >>>>>> >>>>>> >>>>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>>>> >>>>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>> 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 - ?????? ????? - >>>>>>>> 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 - ?????? ????? - >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Thu Mar 21 00:47:53 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 20:47:53 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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?) 2. Y Decodificarlo. (se soluciona fácil respondiendo la pregunta anterior). A parte: ¿Qué hace exactamente la linea?: from __future__ import unicode_literals El 20 de marzo de 2013 20:41, Andrey Antukh 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 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 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 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 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 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 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 "", line 1, in >>>>>>> KeyError: 1 >>>>>>> >>> print kk2["1"] >>>>>>> kákà >>>>>>> >>>>>>> Andrey >>>>>>> >>>>>>> >>>>>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>>>>> >>>>>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse 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 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>> 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 - ?????? ????? - >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From niwi en niwi.be Thu Mar 21 00:59:48 2013 From: niwi en niwi.be (Andrey Antukh) Date: Thu, 21 Mar 2013 00:59:48 +0100 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: El 21 de marzo de 2013 00:47, Flavio Danesse 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 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 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 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 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 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 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 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 "", line 1, in >>>>>>>> KeyError: 1 >>>>>>>> >>> print kk2["1"] >>>>>>>> kákà >>>>>>>> >>>>>>>> Andrey >>>>>>>> >>>>>>>> >>>>>>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 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 escribió: >>>>>>>>>>> >>>>>>>>>>> El 20 de marzo de 2013 19:53, Flavio Danesse >>>>>>>>>>> > 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 >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>> >>>>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>> 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 - ?????? ????? - >>>>>>>> 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 - ?????? ????? - >>>>>> 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 - ?????? ????? - >>>> 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 - ?????? ????? - >> 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 - ?????? ????? - 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: From fdanesse en gmail.com Thu Mar 21 01:12:58 2013 From: fdanesse en gmail.com (Flavio Danesse) Date: Wed, 20 Mar 2013 21:12:58 -0300 Subject: [Python-es] Problemas de encoding json utf-8 In-Reply-To: References: Message-ID: 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 escribió: > > El 21 de marzo de 2013 00:47, Flavio Danesse 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 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 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 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 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 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 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 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 "", line 1, in >>>>>>>>> KeyError: 1 >>>>>>>>> >>> print kk2["1"] >>>>>>>>> kákà >>>>>>>>> >>>>>>>>> Andrey >>>>>>>>> >>>>>>>>> >>>>>>>>> El 20 de marzo de 2013 20:52, Flavio Danesse 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 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 >>>>>>>>>> > 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 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 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 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 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>>>> 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 - ?????? ????? - >>>>>>>>> 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 - ?????? ????? - >>>>>>> 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 - ?????? ????? - >>>>> 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 - ?????? ????? - >>> 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 - ?????? ????? - > 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: From rggg88 en hotmail.com Thu Mar 21 19:13:44 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Thu, 21 Mar 2013 18:13:44 +0000 Subject: [Python-es] Duda sobre bottle Message-ID: Hola amigos como estan? Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para hacer los pedidos http como get, put a partir de esta pagina de la bottle http://bottlepy.org/docs/dev/tutorial.html Todavia hice este: http://www.clubdelphi.com/foros/showthread.php?t=79318 Y entonces luego solo para ver como esto realmente funcionaba hice el siguiente programa: from bottle import run, get, post, request from json import loads from funcoes_links import get_links, matriz_links, record_links, list_port_links, matriz_adjacencia, matriz_adjacencia_bw from funcoes_interfaces import get_interfaces,get_ovs, get_port,get_interface_list, get_list_port_host, get_list_lb from funcoes_estatisticas import get_statistics, matriz_statistics, filter_statistics @get('/topology') # or @route('/login') def topology_form(): info_links =get_links() # Devuelve un fichero json info_interfaces=get_interfaces() # devuelve un fichero json info,links=matriz_links(info_links) # Devuelve dos listas con la informacion que me interesa del json que me dice cuantos puertos tengo por switch switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en mi red return matriz_adjacencia(links,switch) # Devuelve una lista a indicar como los switchs anteriores se conectan. run(host='193.136.93.140', port=8081) Al executr recibo el siguiente mensaje: Unsupported response type: Se que el problema es la informacion venir, en list pues si la pongo en string el le bien, mi duda es si hay alguna forma de contornar este problema? es que normalmente he guardado la informacion en listas y dicionarios, y tambien con dicionarios da error. Muchas gracias por vuestra ayuda e disculpen :) Que tengan un buen resto de dia. Saludos cordiales Rafael. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From stvzito en gmail.com Thu Mar 21 20:15:24 2013 From: stvzito en gmail.com (Manuel A. Estevez Fernandez) Date: Thu, 21 Mar 2013 13:15:24 -0600 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: Buenas Tardes Pues bueno probé con el glob y como era de esperarse tardaba demasiado, así que opté por otro opción que al parecer tiene mucho mejor tiempo de respuesta. import os dir_ = os.popen('dir /B /D /N *%S*.* '%nombre_).read() de esta manera recupero solamente los nombres de archio que contienen las cadenas que tengo en la colección y trabajar con eso es mucho más liviano. Gracias por la ayuda. Saludos. by: ISC. Manuel Alejandro Estévez Fernández El 20 de marzo de 2013 13:20, Manuel A. Estevez Fernandez escribió: > Voy a probar con el glob siguiendo con la sugerencia de Da?id y de Kiko. > Flavio lo pensé pero tengo que buscar varios (cientos) entre cientos de > miles. > > > Saludos. > > by: > > ISC. Manuel Alejandro Estévez Fernández > > > > El 20 de marzo de 2013 12:58, Da?id escribió: > > 2013/3/20 Manuel A. Estevez Fernandez : >> > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto >> no me >> > funciona, o tal vez lo estoy usando de forma incorrecta. >> >> Si el nombre es el mismo, salvo unos caracteres adicionales al final >> (y sólo hay un archivo que cumpla esto): >> >> >> name_rel = 'C00002' >> fname = glob.glob(name_rel + '*')[0] >> shutil.copy2(fname .....) >> >> glob.glob es más o menos el equivalente pythónico al commando: >> >> ls C00002* >> _______________________________________________ >> 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: From ricardo.cardenes en gmail.com Thu Mar 21 20:44:39 2013 From: ricardo.cardenes en gmail.com (=?ISO-8859-1?Q?Ricardo_C=E1rdenes?=) Date: Thu, 21 Mar 2013 19:44:39 +0000 Subject: [Python-es] Copiar archivos In-Reply-To: References: Message-ID: Intenta usar algo del módulo subprocess en lugar de os.popen. 2013/3/21 Manuel A. Estevez Fernandez > Buenas Tardes > > Pues bueno probé con el glob y como era de esperarse tardaba demasiado, > así que opté por otro opción que al parecer tiene mucho mejor tiempo de > respuesta. > > import os > dir_ = os.popen('dir /B /D /N *%S*.* '%nombre_).read() > > de esta manera recupero solamente los nombres de archio que contienen las > cadenas que tengo en la colección y trabajar con eso es mucho más liviano. > > Gracias por la ayuda. > > Saludos. > > > by: > > ISC. Manuel Alejandro Estévez Fernández > > > > El 20 de marzo de 2013 13:20, Manuel A. Estevez Fernandez < > stvzito en gmail.com> escribió: > > Voy a probar con el glob siguiendo con la sugerencia de Da?id y de Kiko. >> Flavio lo pensé pero tengo que buscar varios (cientos) entre cientos de >> miles. >> >> >> Saludos. >> >> by: >> >> ISC. Manuel Alejandro Estévez Fernández >> >> >> >> El 20 de marzo de 2013 12:58, Da?id escribió: >> >> 2013/3/20 Manuel A. Estevez Fernandez : >>> > Intente hacerlo con shutil.copy2 pero como debo tener el nombre exacto >>> no me >>> > funciona, o tal vez lo estoy usando de forma incorrecta. >>> >>> Si el nombre es el mismo, salvo unos caracteres adicionales al final >>> (y sólo hay un archivo que cumpla esto): >>> >>> >>> name_rel = 'C00002' >>> fname = glob.glob(name_rel + '*')[0] >>> shutil.copy2(fname .....) >>> >>> glob.glob es más o menos el equivalente pythónico al commando: >>> >>> ls C00002* >>> _______________________________________________ >>> 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/ > > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From niwi en niwi.be Thu Mar 21 21:04:20 2013 From: niwi en niwi.be (Andrey Antukh) Date: Thu, 21 Mar 2013 21:04:20 +0100 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: Message-ID: Si es un objecto dict o list deberías serializarlo con json. En mi opinión. Andrey El 21 de marzo de 2013 19:13, Rafael Gomes escribió: > Hola amigos como estan? > Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para > hacer los pedidos http como get, put a partir de esta pagina de la bottle > http://bottlepy.org/docs/dev/tutorial.html > Todavia hice este: > http://www.clubdelphi.com/foros/showthread.php?t=79318 > > Y entonces luego solo para ver como esto realmente funcionaba hice el > siguiente programa: > > from bottle import run, get, post, request > from json import loads > from funcoes_links import get_links, matriz_links, record_links, > list_port_links, matriz_adjacencia, matriz_adjacencia_bw > from funcoes_interfaces import get_interfaces,get_ovs, > get_port,get_interface_list, get_list_port_host, get_list_lb > from funcoes_estatisticas import get_statistics, matriz_statistics, > filter_statistics > > > @get('/topology') # or @route('/login') > def topology_form(): > info_links =get_links() # Devuelve un fichero json > info_interfaces=get_interfaces() # devuelve un fichero json > info,links=matriz_links(info_links) # Devuelve dos listas con la > informacion que me interesa del json que me dice cuantos puertos tengo por > switch > switc= get_ovs(info_interfaces) #Devuelve la lista de switchs > en mi red > return matriz_adjacencia(links,switch) # Devuelve una lista a > indicar como los switchs anteriores se conectan. > > run(host='193.136.93.140', port=8081) > > > Al executr recibo el siguiente mensaje: Unsupported response type: 'list'> > > Se que el problema es la informacion venir, en list pues si la pongo en > string el le bien, mi duda es si hay alguna forma de contornar este > problema? es que normalmente he guardado la informacion en listas y > dicionarios, y tambien con dicionarios da error. > > Muchas gracias por vuestra ayuda e disculpen :) > > Que tengan un buen resto de dia. > > Saludos cordiales Rafael. > > > _______________________________________________ > 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 - ?????? ????? - 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: From rggg88 en hotmail.com Thu Mar 21 21:07:41 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Thu, 21 Mar 2013 20:07:41 +0000 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: , Message-ID: Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle y parecidos? Gracias por tu ayuda :). Date: Thu, 21 Mar 2013 21:04:20 +0100 From: niwi en niwi.be To: python-es en python.org Subject: Re: [Python-es] Duda sobre bottle Si es un objecto dict o list deberías serializarlo con json. En mi opinión. Andrey El 21 de marzo de 2013 19:13, Rafael Gomes escribió: Hola amigos como estan? Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para hacer los pedidos http como get, put a partir de esta pagina de la bottle http://bottlepy.org/docs/dev/tutorial.html Todavia hice este: http://www.clubdelphi.com/foros/showthread.php?t=79318 Y entonces luego solo para ver como esto realmente funcionaba hice el siguiente programa: from bottle import run, get, post, request from json import loads from funcoes_links import get_links, matriz_links, record_links, list_port_links, matriz_adjacencia, matriz_adjacencia_bw from funcoes_interfaces import get_interfaces,get_ovs, get_port,get_interface_list, get_list_port_host, get_list_lb from funcoes_estatisticas import get_statistics, matriz_statistics, filter_statistics @get('/topology') # or @route('/login') def topology_form(): info_links =get_links() # Devuelve un fichero json info_interfaces=get_interfaces() # devuelve un fichero json info,links=matriz_links(info_links) # Devuelve dos listas con la informacion que me interesa del json que me dice cuantos puertos tengo por switch switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en mi red return matriz_adjacencia(links,switch) # Devuelve una lista a indicar como los switchs anteriores se conectan. run(host='193.136.93.140', port=8081) Al executr recibo el siguiente mensaje: Unsupported response type: Se que el problema es la informacion venir, en list pues si la pongo en string el le bien, mi duda es si hay alguna forma de contornar este problema? es que normalmente he guardado la informacion en listas y dicionarios, y tambien con dicionarios da error. Muchas gracias por vuestra ayuda e disculpen :) Que tengan un buen resto de dia. Saludos cordiales Rafael. _______________________________________________ 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 - ?????? ????? - 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: From jbc.develop en gmail.com Thu Mar 21 21:12:53 2013 From: jbc.develop en gmail.com (Juan BC) Date: Thu, 21 Mar 2013 17:12:53 -0300 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: Message-ID: en bottle si retornar un objeto dict automaticamente se serializa a json El día 21 de marzo de 2013 17:07, Rafael Gomes escribió: > Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle > y parecidos? > Gracias por tu ayuda :). > > ________________________________ > Date: Thu, 21 Mar 2013 21:04:20 +0100 > From: niwi en niwi.be > To: python-es en python.org > Subject: Re: [Python-es] Duda sobre bottle > > > Si es un objecto dict o list deberías serializarlo con json. En mi opinión. > > Andrey > > > El 21 de marzo de 2013 19:13, Rafael Gomes escribió: > > Hola amigos como estan? > Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para > hacer los pedidos http como get, put a partir de esta pagina de la bottle > http://bottlepy.org/docs/dev/tutorial.html > Todavia hice este: > http://www.clubdelphi.com/foros/showthread.php?t=79318 > > Y entonces luego solo para ver como esto realmente funcionaba hice el > siguiente programa: > > from bottle import run, get, post, request > from json import loads > from funcoes_links import get_links, matriz_links, record_links, > list_port_links, matriz_adjacencia, matriz_adjacencia_bw > from funcoes_interfaces import get_interfaces,get_ovs, > get_port,get_interface_list, get_list_port_host, get_list_lb > from funcoes_estatisticas import get_statistics, matriz_statistics, > filter_statistics > > > @get('/topology') # or @route('/login') > def topology_form(): > info_links =get_links() # Devuelve un fichero json > info_interfaces=get_interfaces() # devuelve un fichero json > info,links=matriz_links(info_links) # Devuelve dos listas con la > informacion que me interesa del json que me dice cuantos puertos tengo por > switch > switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en > mi red > return matriz_adjacencia(links,switch) # Devuelve una lista a > indicar como los switchs anteriores se conectan. > > run(host='193.136.93.140', port=8081) > > > Al executr recibo el siguiente mensaje: Unsupported response type: 'list'> > > Se que el problema es la informacion venir, en list pues si la pongo en > string el le bien, mi duda es si hay alguna forma de contornar este > problema? es que normalmente he guardado la informacion en listas y > dicionarios, y tambien con dicionarios da error. > > Muchas gracias por vuestra ayuda e disculpen :) > > Que tengan un buen resto de dia. > > Saludos cordiales Rafael. > > > _______________________________________________ > 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 - ?????? ????? - > 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/ > -- Juan B Cabral From jbc.develop en gmail.com Thu Mar 21 21:13:46 2013 From: jbc.develop en gmail.com (Juan BC) Date: Thu, 21 Mar 2013 17:13:46 -0300 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: Message-ID: algo asi @get('/topology') # or @route('/login') def topology_form(): info_links =get_links() # Devuelve un fichero json info_interfaces=get_ interfaces() # devuelve un fichero json info,links=matriz_links(info_links) # Devuelve dos listas con la informacion que me interesa del json que me dice cuantos puertos tengo por switch switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en mi red ma = matriz_adjacencia(links,switch) # Devuelve una lista a indicar como los switchs anteriores se conectan. return {"matrix": ma} run(host='193.136.93.140', port=8081) El día 21 de marzo de 2013 17:12, Juan BC escribió: > en bottle si retornar un objeto dict automaticamente se serializa a json > > El día 21 de marzo de 2013 17:07, Rafael Gomes escribió: >> Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle >> y parecidos? >> Gracias por tu ayuda :). >> >> ________________________________ >> Date: Thu, 21 Mar 2013 21:04:20 +0100 >> From: niwi en niwi.be >> To: python-es en python.org >> Subject: Re: [Python-es] Duda sobre bottle >> >> >> Si es un objecto dict o list deberías serializarlo con json. En mi opinión. >> >> Andrey >> >> >> El 21 de marzo de 2013 19:13, Rafael Gomes escribió: >> >> Hola amigos como estan? >> Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para >> hacer los pedidos http como get, put a partir de esta pagina de la bottle >> http://bottlepy.org/docs/dev/tutorial.html >> Todavia hice este: >> http://www.clubdelphi.com/foros/showthread.php?t=79318 >> >> Y entonces luego solo para ver como esto realmente funcionaba hice el >> siguiente programa: >> >> from bottle import run, get, post, request >> from json import loads >> from funcoes_links import get_links, matriz_links, record_links, >> list_port_links, matriz_adjacencia, matriz_adjacencia_bw >> from funcoes_interfaces import get_interfaces,get_ovs, >> get_port,get_interface_list, get_list_port_host, get_list_lb >> from funcoes_estatisticas import get_statistics, matriz_statistics, >> filter_statistics >> >> >> @get('/topology') # or @route('/login') >> def topology_form(): >> info_links =get_links() # Devuelve un fichero json >> info_interfaces=get_interfaces() # devuelve un fichero json >> info,links=matriz_links(info_links) # Devuelve dos listas con la >> informacion que me interesa del json que me dice cuantos puertos tengo por >> switch >> switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en >> mi red >> return matriz_adjacencia(links,switch) # Devuelve una lista a >> indicar como los switchs anteriores se conectan. >> >> run(host='193.136.93.140', port=8081) >> >> >> Al executr recibo el siguiente mensaje: Unsupported response type: > 'list'> >> >> Se que el problema es la informacion venir, en list pues si la pongo en >> string el le bien, mi duda es si hay alguna forma de contornar este >> problema? es que normalmente he guardado la informacion en listas y >> dicionarios, y tambien con dicionarios da error. >> >> Muchas gracias por vuestra ayuda e disculpen :) >> >> Que tengan un buen resto de dia. >> >> Saludos cordiales Rafael. >> >> >> _______________________________________________ >> 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 - ?????? ????? - >> 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/ >> > > > > -- > Juan B Cabral -- Juan B Cabral From rggg88 en hotmail.com Thu Mar 21 21:20:32 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Thu, 21 Mar 2013 20:20:32 +0000 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: , , , , Message-ID: Ok muchas gracias, lo voy a probar de aqui a poco y te cuento como me fue. Que tengas un buen resto de dia. > Date: Thu, 21 Mar 2013 17:13:46 -0300 > From: jbc.develop en gmail.com > To: python-es en python.org > Subject: Re: [Python-es] Duda sobre bottle > > algo asi > > @get('/topology') # or @route('/login') > def topology_form(): > info_links =get_links() # Devuelve un fichero json > info_interfaces=get_ > interfaces() # devuelve un fichero json > info,links=matriz_links(info_links) # Devuelve dos listas con > la informacion que me interesa del json que me dice cuantos puertos > tengo por switch > switc= get_ovs(info_interfaces) #Devuelve la lista de > switchs en mi red > ma = matriz_adjacencia(links,switch) # Devuelve una lista a > indicar como los switchs anteriores se conectan. > return {"matrix": ma} > > run(host='193.136.93.140', port=8081) > > El día 21 de marzo de 2013 17:12, Juan BC escribió: > > en bottle si retornar un objeto dict automaticamente se serializa a json > > > > El día 21 de marzo de 2013 17:07, Rafael Gomes escribió: > >> Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle > >> y parecidos? > >> Gracias por tu ayuda :). > >> > >> ________________________________ > >> Date: Thu, 21 Mar 2013 21:04:20 +0100 > >> From: niwi en niwi.be > >> To: python-es en python.org > >> Subject: Re: [Python-es] Duda sobre bottle > >> > >> > >> Si es un objecto dict o list deberías serializarlo con json. En mi opinión. > >> > >> Andrey > >> > >> > >> El 21 de marzo de 2013 19:13, Rafael Gomes escribió: > >> > >> Hola amigos como estan? > >> Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para > >> hacer los pedidos http como get, put a partir de esta pagina de la bottle > >> http://bottlepy.org/docs/dev/tutorial.html > >> Todavia hice este: > >> http://www.clubdelphi.com/foros/showthread.php?t=79318 > >> > >> Y entonces luego solo para ver como esto realmente funcionaba hice el > >> siguiente programa: > >> > >> from bottle import run, get, post, request > >> from json import loads > >> from funcoes_links import get_links, matriz_links, record_links, > >> list_port_links, matriz_adjacencia, matriz_adjacencia_bw > >> from funcoes_interfaces import get_interfaces,get_ovs, > >> get_port,get_interface_list, get_list_port_host, get_list_lb > >> from funcoes_estatisticas import get_statistics, matriz_statistics, > >> filter_statistics > >> > >> > >> @get('/topology') # or @route('/login') > >> def topology_form(): > >> info_links =get_links() # Devuelve un fichero json > >> info_interfaces=get_interfaces() # devuelve un fichero json > >> info,links=matriz_links(info_links) # Devuelve dos listas con la > >> informacion que me interesa del json que me dice cuantos puertos tengo por > >> switch > >> switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en > >> mi red > >> return matriz_adjacencia(links,switch) # Devuelve una lista a > >> indicar como los switchs anteriores se conectan. > >> > >> run(host='193.136.93.140', port=8081) > >> > >> > >> Al executr recibo el siguiente mensaje: Unsupported response type: >> 'list'> > >> > >> Se que el problema es la informacion venir, en list pues si la pongo en > >> string el le bien, mi duda es si hay alguna forma de contornar este > >> problema? es que normalmente he guardado la informacion en listas y > >> dicionarios, y tambien con dicionarios da error. > >> > >> Muchas gracias por vuestra ayuda e disculpen :) > >> > >> Que tengan un buen resto de dia. > >> > >> Saludos cordiales Rafael. > >> > >> > >> _______________________________________________ > >> 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 - ?????? ????? - > >> 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/ > >> > > > > > > > > -- > > Juan B Cabral > > > > -- > Juan B Cabral > _______________________________________________ > 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: From niwi en niwi.be Thu Mar 21 21:39:34 2013 From: niwi en niwi.be (Andrey Antukh) Date: Thu, 21 Mar 2013 21:39:34 +0100 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: Message-ID: Respeto a json o pickle... la decision es tuya, todo depende de quien va a leer esos datos. Pickle solo lo puede leer python y json es universal y lo pueden leer muchos lenguajes por no decir todos. Andrey El 21 de marzo de 2013 21:20, Rafael Gomes escribió: > Ok muchas gracias, lo voy a probar de aqui a poco y te cuento como me fue. > Que tengas un buen resto de dia. > > > Date: Thu, 21 Mar 2013 17:13:46 -0300 > > From: jbc.develop en gmail.com > > > To: python-es en python.org > > Subject: Re: [Python-es] Duda sobre bottle > > > > algo asi > > > > @get('/topology') # or @route('/login') > > def topology_form(): > > info_links =get_links() # Devuelve un fichero json > > info_interfaces=get_ > > interfaces() # devuelve un fichero json > > info,links=matriz_links(info_links) # Devuelve dos listas con > > la informacion que me interesa del json que me dice cuantos puertos > > tengo por switch > > switc= get_ovs(info_interfaces) #Devuelve la lista de > > switchs en mi red > > ma = matriz_adjacencia(links,switch) # Devuelve una lista a > > indicar como los switchs anteriores se conectan. > > return {"matrix": ma} > > > > run(host='193.136.93.140', port=8081) > > > > El día 21 de marzo de 2013 17:12, Juan BC > escribió: > > > en bottle si retornar un objeto dict automaticamente se serializa a > json > > > > > > El día 21 de marzo de 2013 17:07, Rafael Gomes > escribió: > > >> Ok y para serializarlo utilizo o dump de la biblioteca json o uso el > pickle > > >> y parecidos? > > >> Gracias por tu ayuda :). > > >> > > >> ________________________________ > > >> Date: Thu, 21 Mar 2013 21:04:20 +0100 > > >> From: niwi en niwi.be > > >> To: python-es en python.org > > >> Subject: Re: [Python-es] Duda sobre bottle > > >> > > >> > > >> Si es un objecto dict o list deberías serializarlo con json. En mi > opinión. > > >> > > >> Andrey > > >> > > >> > > >> El 21 de marzo de 2013 19:13, Rafael Gomes > escribió: > > >> > > >> Hola amigos como estan? > > >> Disculpen molestar pero estaba a seguir un tutorial sobre el bottle > para > > >> hacer los pedidos http como get, put a partir de esta pagina de la > bottle > > >> http://bottlepy.org/docs/dev/tutorial.html > > >> Todavia hice este: > > >> http://www.clubdelphi.com/foros/showthread.php?t=79318 > > >> > > >> Y entonces luego solo para ver como esto realmente funcionaba hice el > > >> siguiente programa: > > >> > > >> from bottle import run, get, post, request > > >> from json import loads > > >> from funcoes_links import get_links, matriz_links, record_links, > > >> list_port_links, matriz_adjacencia, matriz_adjacencia_bw > > >> from funcoes_interfaces import get_interfaces,get_ovs, > > >> get_port,get_interface_list, get_list_port_host, get_list_lb > > >> from funcoes_estatisticas import get_statistics, matriz_statistics, > > >> filter_statistics > > >> > > >> > > >> @get('/topology') # or @route('/login') > > >> def topology_form(): > > >> info_links =get_links() # Devuelve un fichero json > > >> info_interfaces=get_interfaces() # devuelve un fichero json > > >> info,links=matriz_links(info_links) # Devuelve dos listas con la > > >> informacion que me interesa del json que me dice cuantos puertos > tengo por > > >> switch > > >> switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en > > >> mi red > > >> return matriz_adjacencia(links,switch) # Devuelve una lista a > > >> indicar como los switchs anteriores se conectan. > > >> > > >> run(host='193.136.93.140', port=8081) > > >> > > >> > > >> Al executr recibo el siguiente mensaje: Unsupported response type: > > >> 'list'> > > >> > > >> Se que el problema es la informacion venir, en list pues si la pongo > en > > >> string el le bien, mi duda es si hay alguna forma de contornar este > > >> problema? es que normalmente he guardado la informacion en listas y > > >> dicionarios, y tambien con dicionarios da error. > > >> > > >> Muchas gracias por vuestra ayuda e disculpen :) > > >> > > >> Que tengan un buen resto de dia. > > >> > > >> Saludos cordiales Rafael. > > >> > > >> > > >> _______________________________________________ > > >> 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 - ?????? ????? - > > >> 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/ > > >> > > > > > > > > > > > > -- > > > Juan B Cabral > > > > > > > > -- > > Juan B Cabral > > _______________________________________________ > > 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 - ?????? ????? - 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: From rggg88 en hotmail.com Fri Mar 22 12:00:03 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Fri, 22 Mar 2013 11:00:03 +0000 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: , , , , Message-ID: Muchas gracias consegui que me mostrase el resultado como deseaba. Que tengas un buen fin de semana :). > Date: Thu, 21 Mar 2013 17:13:46 -0300 > From: jbc.develop en gmail.com > To: python-es en python.org > Subject: Re: [Python-es] Duda sobre bottle > > algo asi > > @get('/topology') # or @route('/login') > def topology_form(): > info_links =get_links() # Devuelve un fichero json > info_interfaces=get_ > interfaces() # devuelve un fichero json > info,links=matriz_links(info_links) # Devuelve dos listas con > la informacion que me interesa del json que me dice cuantos puertos > tengo por switch > switc= get_ovs(info_interfaces) #Devuelve la lista de > switchs en mi red > ma = matriz_adjacencia(links,switch) # Devuelve una lista a > indicar como los switchs anteriores se conectan. > return {"matrix": ma} > > run(host='193.136.93.140', port=8081) > > El día 21 de marzo de 2013 17:12, Juan BC escribió: > > en bottle si retornar un objeto dict automaticamente se serializa a json > > > > El día 21 de marzo de 2013 17:07, Rafael Gomes escribió: > >> Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle > >> y parecidos? > >> Gracias por tu ayuda :). > >> > >> ________________________________ > >> Date: Thu, 21 Mar 2013 21:04:20 +0100 > >> From: niwi en niwi.be > >> To: python-es en python.org > >> Subject: Re: [Python-es] Duda sobre bottle > >> > >> > >> Si es un objecto dict o list deberías serializarlo con json. En mi opinión. > >> > >> Andrey > >> > >> > >> El 21 de marzo de 2013 19:13, Rafael Gomes escribió: > >> > >> Hola amigos como estan? > >> Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para > >> hacer los pedidos http como get, put a partir de esta pagina de la bottle > >> http://bottlepy.org/docs/dev/tutorial.html > >> Todavia hice este: > >> http://www.clubdelphi.com/foros/showthread.php?t=79318 > >> > >> Y entonces luego solo para ver como esto realmente funcionaba hice el > >> siguiente programa: > >> > >> from bottle import run, get, post, request > >> from json import loads > >> from funcoes_links import get_links, matriz_links, record_links, > >> list_port_links, matriz_adjacencia, matriz_adjacencia_bw > >> from funcoes_interfaces import get_interfaces,get_ovs, > >> get_port,get_interface_list, get_list_port_host, get_list_lb > >> from funcoes_estatisticas import get_statistics, matriz_statistics, > >> filter_statistics > >> > >> > >> @get('/topology') # or @route('/login') > >> def topology_form(): > >> info_links =get_links() # Devuelve un fichero json > >> info_interfaces=get_interfaces() # devuelve un fichero json > >> info,links=matriz_links(info_links) # Devuelve dos listas con la > >> informacion que me interesa del json que me dice cuantos puertos tengo por > >> switch > >> switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en > >> mi red > >> return matriz_adjacencia(links,switch) # Devuelve una lista a > >> indicar como los switchs anteriores se conectan. > >> > >> run(host='193.136.93.140', port=8081) > >> > >> > >> Al executr recibo el siguiente mensaje: Unsupported response type: >> 'list'> > >> > >> Se que el problema es la informacion venir, en list pues si la pongo en > >> string el le bien, mi duda es si hay alguna forma de contornar este > >> problema? es que normalmente he guardado la informacion en listas y > >> dicionarios, y tambien con dicionarios da error. > >> > >> Muchas gracias por vuestra ayuda e disculpen :) > >> > >> Que tengan un buen resto de dia. > >> > >> Saludos cordiales Rafael. > >> > >> > >> _______________________________________________ > >> 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 - ?????? ????? - > >> 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/ > >> > > > > > > > > -- > > Juan B Cabral > > > > -- > Juan B Cabral > _______________________________________________ > 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: From rggg88 en hotmail.com Fri Mar 22 12:00:43 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Fri, 22 Mar 2013 11:00:43 +0000 Subject: [Python-es] Duda sobre bottle In-Reply-To: References: , , , , , , Message-ID: Gracias por tu ayuda y opinion, voy a trabajar en json. Que tengas un buen fin de semana Date: Thu, 21 Mar 2013 21:39:34 +0100 From: niwi en niwi.be To: python-es en python.org Subject: Re: [Python-es] Duda sobre bottle Respeto a json o pickle... la decision es tuya, todo depende de quien va a leer esos datos. Pickle solo lo puede leer python y json es universal y lo pueden leer muchos lenguajes por no decir todos. Andrey El 21 de marzo de 2013 21:20, Rafael Gomes escribió: Ok muchas gracias, lo voy a probar de aqui a poco y te cuento como me fue. Que tengas un buen resto de dia. > Date: Thu, 21 Mar 2013 17:13:46 -0300 > From: jbc.develop en gmail.com > To: python-es en python.org > Subject: Re: [Python-es] Duda sobre bottle > > algo asi > > @get('/topology') # or @route('/login') > def topology_form(): > info_links =get_links() # Devuelve un fichero json > info_interfaces=get_ > interfaces() # devuelve un fichero json > info,links=matriz_links(info_links) # Devuelve dos listas con > la informacion que me interesa del json que me dice cuantos puertos > tengo por switch > switc= get_ovs(info_interfaces) #Devuelve la lista de > switchs en mi red > ma = matriz_adjacencia(links,switch) # Devuelve una lista a > indicar como los switchs anteriores se conectan. > return {"matrix": ma} > > run(host='193.136.93.140', port=8081) > > El día 21 de marzo de 2013 17:12, Juan BC escribió: > > en bottle si retornar un objeto dict automaticamente se serializa a json > > > > El día 21 de marzo de 2013 17:07, Rafael Gomes escribió: > >> Ok y para serializarlo utilizo o dump de la biblioteca json o uso el pickle > >> y parecidos? > >> Gracias por tu ayuda :). > >> > >> ________________________________ > >> Date: Thu, 21 Mar 2013 21:04:20 +0100 > >> From: niwi en niwi.be > >> To: python-es en python.org > >> Subject: Re: [Python-es] Duda sobre bottle > >> > >> > >> Si es un objecto dict o list deberías serializarlo con json. En mi opinión. > >> > >> Andrey > >> > >> > >> El 21 de marzo de 2013 19:13, Rafael Gomes escribió: > >> > >> Hola amigos como estan? > >> Disculpen molestar pero estaba a seguir un tutorial sobre el bottle para > >> hacer los pedidos http como get, put a partir de esta pagina de la bottle > >> http://bottlepy.org/docs/dev/tutorial.html > >> Todavia hice este: > >> http://www.clubdelphi.com/foros/showthread.php?t=79318 > >> > >> Y entonces luego solo para ver como esto realmente funcionaba hice el > >> siguiente programa: > >> > >> from bottle import run, get, post, request > >> from json import loads > >> from funcoes_links import get_links, matriz_links, record_links, > >> list_port_links, matriz_adjacencia, matriz_adjacencia_bw > >> from funcoes_interfaces import get_interfaces,get_ovs, > >> get_port,get_interface_list, get_list_port_host, get_list_lb > >> from funcoes_estatisticas import get_statistics, matriz_statistics, > >> filter_statistics > >> > >> > >> @get('/topology') # or @route('/login') > >> def topology_form(): > >> info_links =get_links() # Devuelve un fichero json > >> info_interfaces=get_interfaces() # devuelve un fichero json > >> info,links=matriz_links(info_links) # Devuelve dos listas con la > >> informacion que me interesa del json que me dice cuantos puertos tengo por > >> switch > >> switc= get_ovs(info_interfaces) #Devuelve la lista de switchs en > >> mi red > >> return matriz_adjacencia(links,switch) # Devuelve una lista a > >> indicar como los switchs anteriores se conectan. > >> > >> run(host='193.136.93.140', port=8081) > >> > >> > >> Al executr recibo el siguiente mensaje: Unsupported response type: >> 'list'> > >> > >> Se que el problema es la informacion venir, en list pues si la pongo en > >> string el le bien, mi duda es si hay alguna forma de contornar este > >> problema? es que normalmente he guardado la informacion en listas y > >> dicionarios, y tambien con dicionarios da error. > >> > >> Muchas gracias por vuestra ayuda e disculpen :) > >> > >> Que tengan un buen resto de dia. > >> > >> Saludos cordiales Rafael. > >> > >> > >> _______________________________________________ > >> 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 - ?????? ????? - > >> 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/ > >> > > > > > > > > -- > > Juan B Cabral > > > > -- > Juan B Cabral > _______________________________________________ > 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 - ?????? ????? - 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: From jza en oooes.org Sun Mar 24 04:34:54 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sat, 23 Mar 2013 21:34:54 -0600 Subject: [Python-es] Certificaciones Python Message-ID: El topico de certificaciones tarde o temprano aparece por los diversos grupos tecnicos que tengo. Un amigo tiene inclusive una certificacion (de su empresa) en Python. Figuras del mundo de Python como Alex Martelli han sido muy notorios por su posicion en conta de una certificacion. Sin embargo en el mundo empresarial son muy pro-certificaciones, inclusive en Linux, las certificaciones LPI, Linux+ RedHat etc, han sido algo exitosas a la hora de contratar. Alguna opinion al caso? -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From francismb en email.de Sun Mar 24 10:43:23 2013 From: francismb en email.de (francis) Date: Sun, 24 Mar 2013 10:43:23 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: Message-ID: <514ECABB.3040407@email.de> >>RedHat etc, han sido algo exitosas a la hora de contratar. Alguna opinion al caso? La mejor certificacion en python que se puede tener es que uno ayude al desarollo del lenguage sea bien como core-dev o bien con/en algun proyecto de exposición. Saludos, Francis From kikocorreoso en gmail.com Sun Mar 24 11:04:54 2013 From: kikocorreoso en gmail.com (Kiko) Date: Sun, 24 Mar 2013 11:04:54 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: <20130320141336.6b69faee@U002498.sn.ehu.es> References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> <20130320141336.6b69faee@U002498.sn.ehu.es> Message-ID: El 20 de marzo de 2013 14:13, Inigo Aldazabal Mensa escribió: > On Wed, 20 Mar 2013 14:02:02 +0100 > Chema Cortes wrote: > > > El día 20 de marzo de 2013 13:19, José Sabater Montes > > escribió: > > > > > > Hola, > > > > > > El 20/03/2013, a las 11:00, Chema Cortes escribió: > > > > > >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > >> > > >> In [13]: import math > > >> > > >> In [14]: math.tan(math.pi/2) > > >> Out[14]: 1.633123935319537e+16 > > >> > > >> Aunque no esperaba que me diese la solución correcta de > > >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño > > >> máximo que podría tener un double: > > >> > > >> In [16]: sys.float_info.max > > >> Out[16]: 1.7976931348623157e+308 > > >> > > >> He comprobado que pasa lo mismo con scala e, incluso, en el > > >> buscador de google (tal vez sea que google usa también python): > > >> > > >> https://www.google.com/search?q=tan(pi%2F2) > > >> > > >> ¿Existe alguna explicación? > Ayer estuve usando SymPy y quizá esto te valdría (aunque tendrías el requerimiento de tener que usar SymPy): In [1]: import sympy In [2]: a = sympy.tan(sympy.pi/2) In [3]: print(a, type(a)) (zoo, ) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jza en oooes.org Sun Mar 24 11:14:37 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 04:14:37 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <514ECABB.3040407@email.de> References: <514ECABB.3040407@email.de> Message-ID: On 3/24/13, francis wrote: > >>RedHat etc, han sido algo exitosas a la hora de contratar. Alguna > opinion al caso? > La mejor certificacion en python que se puede tener es que uno ayude al > desarollo del lenguage sea bien como core-dev o bien con/en algun > proyecto de exposición. No entiendo muy bien la logica de ese movimiento, para saber python debes ser buen desarrollador de C? Hasta donde se muchos de las certificaciones del lenguaje tienen que ver con el uso, no el desarrollo del lenguaje. Tomando el caso de RedHat, no te obliga a desarrollar el kernel para ser un tecnico, ingeniero o arquitecto de RedHat. Asi tambien como los temarios de las otras certificaciones en Linux. De hecho, muchos de estos se enfocan en cosas que no tienen que ver con el kernel como, bash, samba, apache, pam, grub, vim, etc. No se si esto seria similar a saber usar la STL como re, os, sys, BeautifulSoup, wsgi, csv, etc. La arquitectura de Python, es un 'juego' demasiado diferente como aprender esto: http://www.aosabook.org/images/pypy/translation_steps.png * * = no encontre el diseño de arquitectura de CPython pero Pypy puede ser lo mas similar. Te puedo decir que por lo menos las certificaciones de aplicaciones como OpenOffice, usualmente no tocan nada del codigo fuente, y de primera mano hay muchos desarrolladores core, que ignoran como se puede usar modelos financieros. > > Saludos, > > Francis > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From francismb en email.de Sun Mar 24 11:39:34 2013 From: francismb en email.de (francis) Date: Sun, 24 Mar 2013 11:39:34 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> Message-ID: <514ED7E6.4040704@email.de> > No entiendo muy bien la logica de ese movimiento, para saber python > debes ser buen desarrollador de C? No, uso puede ayudar sólo sabiendo Python. Pero al fin y al cabo es sólo un ejemplo de un proyecto en el qual se toca Python, naturalmente no tiene que ser en el desarollo del core. La idea es que poder demostrar con proyectos de exposición 'reales' y visibles a todos que uno puede desarollar y es fluido en el lenguage. Mi opinión es que me parece mucho mejor poder poner ese typo de referencias (links a repos, commits, docs) en un currículum. Saludos, francis From jza en oooes.org Sun Mar 24 12:20:09 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 05:20:09 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <514ED7E6.4040704@email.de> References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> Message-ID: Esto no creo que sea funcional, de hecho, la situacion de una certificacion tradicional es por que es mas medible, que en un portafolio de codigo. Es decir, certifica que tienes un conocimiento estructurado y estandar del lenguaje. Un pedazo de codigo puede o no tocar, puede seguir convenciones estandares, o no, y finalmente el proyecto puede funcionar pero tener grandes bugs y errores de desarrollo asi como excesivo consumo de memoria. El que sea un proyecto "real" no creo que signifique que este excento de estos riesgos. On 3/24/13, francis wrote: > >> No entiendo muy bien la logica de ese movimiento, para saber python >> debes ser buen desarrollador de C? > > No, uso puede ayudar sólo sabiendo Python. Pero al fin y al cabo es sólo > un ejemplo de un proyecto en el qual se toca Python, naturalmente no > tiene que ser en el desarollo del core. > > La idea es que poder demostrar con proyectos de exposición 'reales' y > visibles a todos que uno puede desarollar y es fluido en el lenguage. > > Mi opinión es que me parece mucho mejor poder poner ese typo de > referencias (links a repos, commits, docs) en un currículum. > > > Saludos, > > francis > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From francisco.palm en gmail.com Sun Mar 24 12:52:54 2013 From: francisco.palm en gmail.com (Francisco Palm) Date: Sun, 24 Mar 2013 07:22:54 -0430 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> Message-ID: De cualquier modo hay mucho más riesgo en una certificación dada por una evaluación estándar, los que aplican pueden convertirse en expertos en evaluaciones y aún así tener muchas deficiencias a la hora de encarar un proyecto. Un conocimiento estructurado y estándar en Python no garantiza la capacidad de construir soluciones, no habla de un manejo fluido de la tecnología, no garantiza destrezas de trabajo en equipo, de saberse comunicar ante sus pares. Tampoco tener un proyecto en repositorios o hacer muchos commits dar mayor garantía, mucha gente podría gozar de la sombra del trabajo de otros, realizar muchos commits triviales, encargarse de tareas rutinarias que no exigen mayor capacidad. Creo que el problema en el fondo no está en Python sino en "el mundo empresarial" donde precisamente la coherencia y creatividad son bienes bastante escasos y actúan con márgenes de maniobra muy limitados, todo ponderado finalmente según la acumulación de capital. Saludos F. Palm 2013/3/24 Alexandro Colorado > Esto no creo que sea funcional, de hecho, la situacion de una > certificacion tradicional es por que es mas medible, que en un > portafolio de codigo. > > Es decir, certifica que tienes un conocimiento estructurado y estandar > del lenguaje. > > Un pedazo de codigo puede o no tocar, puede seguir convenciones > estandares, o no, y finalmente el proyecto puede funcionar pero tener > grandes bugs y errores de desarrollo asi como excesivo consumo de > memoria. > > El que sea un proyecto "real" no creo que signifique que este excento > de estos riesgos. > > On 3/24/13, francis wrote: > > > >> No entiendo muy bien la logica de ese movimiento, para saber python > >> debes ser buen desarrollador de C? > > > > No, uso puede ayudar sólo sabiendo Python. Pero al fin y al cabo es sólo > > un ejemplo de un proyecto en el qual se toca Python, naturalmente no > > tiene que ser en el desarollo del core. > > > > La idea es que poder demostrar con proyectos de exposición 'reales' y > > visibles a todos que uno puede desarollar y es fluido en el lenguage. > > > > Mi opinión es que me parece mucho mejor poder poner ese typo de > > referencias (links a repos, commits, docs) en un currículum. > > > > > > Saludos, > > > > francis > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- -------------------------------------- fpalm en mapologo.org.ve francisco.palm en gmail.com cel: +58 +424 7228252 tel: +58 +274 6352001 ---- Debemos ser libres, no para hacer lo que nos plazca, sino libres para comprender muy profundamente nuestros propios instintos e impulsos. K ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From francismb en email.de Sun Mar 24 13:35:26 2013 From: francismb en email.de (francis) Date: Sun, 24 Mar 2013 13:35:26 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> Message-ID: <514EF30E.4000305@email.de> On 03/24/2013 12:20 PM, Alexandro Colorado wrote: > Esto no creo que sea funcional, de hecho, la situacion de una > certificacion tradicional es por que es mas medible, que en un > portafolio de codigo. > Mi opinión es que una certificación no es más medible. Pero bien que tendrá su función en determinados contextos. Francisco Palm lo ha expuesto a mi paracer muy bien. Saludos Francis From eventgrafic en gmail.com Sun Mar 24 14:36:43 2013 From: eventgrafic en gmail.com (Eduard Diaz) Date: Sun, 24 Mar 2013 14:36:43 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: <514EF30E.4000305@email.de> References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> <514EF30E.4000305@email.de> Message-ID: Alguien que tiene muchas certificaciones, es alguien que ha dedicado mucho tiempo y generalmente dinero para poder escalar posiciones en el mundo empresarial de las grandes consultoras. Como se ha comentado anteriormente es una practica del mundo empresarial concretamente el de las grandes consultoras y por ese motivo, los lenguajes que quieren ese mercado son los primeros que pierden el tiempo montando los cursos. Forma parte del pastel. Pero la realidad es muy distinta, solo hay que hacer cuatro números, estimar cuantas grandes consultoras hay, cuantos trabajadores programadores tienen y cuantos programadores en activo están fuera de ellas para darse cuenta de son muy pocos y que lo interesante, lo creativo y la innovación no se encuentran en ellas. Quien mide el trabajo por etiquetas sólo le importa la apariencia! Personalmente creo que una certificación son de esas cosas que en un currículum solo hacen ruido, es casi casi como poner el modelo de coche, la marca de la corbata o el club de golf. Y recuerdo que todas esas cosas también son importantes en las grandes consultoras! En resumen, mi opinión es que una certificación es perder el tiempo y tirar el dinero si no quieres trabajar en una gran consultora. El día 24 de marzo de 2013 13:35, francis escribió: > On 03/24/2013 12:20 PM, Alexandro Colorado wrote: >> >> Esto no creo que sea funcional, de hecho, la situacion de una >> certificacion tradicional es por que es mas medible, que en un >> portafolio de codigo. >> > > Mi opinión es que una certificación no es más medible. Pero bien que tendrá > su función en determinados contextos. Francisco Palm lo ha > expuesto a mi paracer muy bien. > > Saludos > > > Francis > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ From hfoffani en gmail.com Sun Mar 24 21:09:41 2013 From: hfoffani en gmail.com (Hernan M. F.) Date: Sun, 24 Mar 2013 21:09:41 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> <20130320141336.6b69faee@U002498.sn.ehu.es> Message-ID: <8A5E7BF5-A405-4C58-9359-5BE1BD29B1DB@gmail.com> > > >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: > > >> > > >> In [13]: import math > > >> > > >> In [14]: math.tan(math.pi/2) > > >> Out[14]: 1.633123935319537e+16 > > >> > > >> Aunque no esperaba que me diese la solución correcta de > > >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño > > >> máximo que podría tener un double: > > >> > > >> In [16]: sys.float_info.max > > >> Out[16]: 1.7976931348623157e+308 > > >> > > >> He comprobado que pasa lo mismo con scala e, incluso, en el > > >> buscador de google (tal vez sea que google usa también python): > > >> > > >> https://www.google.com/search?q=tan(pi%2F2) > > >> > > >> ¿Existe alguna explicación? Supongo que a esta altura ya lo has resuelto, pero si no, añado algunas precisiones (pun intended). Lo de Python/Scala/Google es por la libm, la biblioteca matemática estándar de C. Esto muestra el mismo resultado que ves en Python (M_PI_2 es la constante PI/2 ya definida en la biblioteca): #include #include int main() { printf("%f\n", tan(M_PI_2)); } Matemáticamente hablando tan(pi/2) no está definido. El límite para valores tendiendo a pi/2 desde 0 es +inf y -inf para x desde 3. Lo que mejor podría hacer tan() es devolver NaN pero debería saber que x es exactamente PI y no un número menor/mayor. Si pruebas con valores ligeramente mayores a M_PI_2 verás que tan() sí cambia el signo. La biblioteca resuelve bien algunas operaciones desde el punto de vista matemático ( ej. 1/+inf ) y otras no (ej. pow(-1, +inf) -> 1 y debería ser NaN o domain error). Las libm están llenas de compromisos de ese estilo por performance, implementación, precisión, etc. A esta altura su comportamiento está completamente estandarizado. Saludos, H. From hfoffani en gmail.com Sun Mar 24 21:29:20 2013 From: hfoffani en gmail.com (Hernan M. F.) Date: Sun, 24 Mar 2013 21:29:20 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> <514EF30E.4000305@email.de> Message-ID: <3EEE769A-06EC-4004-B81F-D6F79766F9F8@gmail.com> > ? > En resumen, mi opinión es que una certificación es perder el tiempo y > tirar el dinero si no quieres trabajar en una gran consultora. Y ni siquiera. Sí lo he visto en temas de administración de redes, equipos, usuarios (ej. Cisco, Exchange, etc) pero en programación no me he encontrado con ningún caso. Para un junior con cero de experiencia le puede valer como un primer título pero en ese caso da igual el lenguaje. -H. From jza en oooes.org Sun Mar 24 21:54:37 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 14:54:37 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <3EEE769A-06EC-4004-B81F-D6F79766F9F8@gmail.com> References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> <514EF30E.4000305@email.de> <3EEE769A-06EC-4004-B81F-D6F79766F9F8@gmail.com> Message-ID: On 3/24/13, Hernan M. F. wrote: >> ? >> En resumen, mi opinión es que una certificación es perder el tiempo y >> tirar el dinero si no quieres trabajar en una gran consultora. > > Y ni siquiera. Sí lo he visto en temas de administración de redes, equipos, > usuarios (ej. Cisco, Exchange, etc) pero en programación no me he encontrado > con ningún caso. Para un junior con cero de experiencia le puede valer como > un primer título pero en ese caso da igual el lenguaje. Por otro lado los lenguajes con certificaciones son los que son mas disipadamente implementados en el mundo empresarial como Java, C#, y hasta Visual Basic. Dicho esto la certificacion puede no ser el factor. Sin embargo para analizar tu punto, seria, cual de los desarrolladores certificados en Java, realmente tienen conocimiento de Java. No hablo que sean grandes maestros del lenguaje, pero que puedan dominar el API estandar de java, y puedan hacer aplicaciones "basicas" de manera comoda. Tomando la certificacion de Linux como prueba, alguien certificado en Linux puedo asegurar que sabe que es un redireccionador, usar vim (de forma basica), saber que hace proc, mount, crear usuarios y particionar un disco. La certificacion no lo hace un 'maestro' de linux pero si garantiza que si le das una tarea basica (crear y configurar un usuario) lo sabra hacer. Por otro lado quien invirtio dinero en una certificacion, muestra un interes en el tema de alguien quien no lo ha hecho. Y tambien creo que puede ser util para separarlo del 'monton' que solo cuentan con un diploma universitario. > > -H. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From s_48k en yahoo.com Sun Mar 24 22:08:04 2013 From: s_48k en yahoo.com (s_48k) Date: Sun, 24 Mar 2013 22:08:04 +0100 Subject: [Python-es] Certificaciones Python Message-ID: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Por momentos, y leyendo algunos de los comentarios, parece que creen que las certificaciones las regalan. Los exámenes están para lo que están. Se certifica determinado nivel en el uso de un lenguaje. Los portafolios hacen lo mismo... Pero igual los puedes falsificar. Nadie dice que una certificación te convierta en un mega crack, pero si que tienes determinados conocimientos. Hay una frase de Bernard Show: Los títulos diferencian a los mediocres, embarazan a los inferiores y son desprestigiados por los superiores. Cuando uno no tiene experiencia, un título, como mínimo da idea de tus ganas e implicación, luego vendrá la experiencia. Saludos. -----Mensaje original----- De: Alexandro Colorado Enviado: 24/03/2013 21:55 Para: La lista de python en castellano Asunto: Re: [Python-es] Certificaciones Python On 3/24/13, Hernan M. F. wrote: >> ? >> En resumen, mi opinión es que una certificación es perder el tiempo y >> tirar el dinero si no quieres trabajar en una gran consultora. > > Y ni siquiera. Sí lo he visto en temas de administración de redes, equipos, > usuarios (ej. Cisco, Exchange, etc) pero en programación no me he encontrado > con ningún caso. Para un junior con cero de experiencia le puede valer como > un primer título pero en ese caso da igual el lenguaje. Por otro lado los lenguajes con certificaciones son los que son mas disipadamente implementados en el mundo empresarial como Java, C#, y hasta Visual Basic. Dicho esto la certificacion puede no ser el factor. Sin embargo para analizar tu punto, seria, cual de los desarrolladores certificados en Java, realmente tienen conocimiento de Java. No hablo que sean grandes maestros del lenguaje, pero que puedan dominar el API estandar de java, y puedan hacer aplicaciones "basicas" de manera comoda. Tomando la certificacion de Linux como prueba, alguien certificado en Linux puedo asegurar que sabe que es un redireccionador, usar vim (de forma basica), saber que hace proc, mount, crear usuarios y particionar un disco. La certificacion no lo hace un 'maestro' de linux pero si garantiza que si le das una tarea basica (crear y configurar un usuario) lo sabra hacer. Por otro lado quien invirtio dinero en una certificacion, muestra un interes en el tema de alguien quien no lo ha hecho. Y tambien creo que puede ser util para separarlo del 'monton' que solo cuentan con un diploma universitario. > > -H. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org _______________________________________________ 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: From jza en oooes.org Sun Mar 24 22:15:00 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 15:15:00 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Message-ID: On 3/24/13, s_48k wrote: > Por momentos, y leyendo algunos de los comentarios, parece que creen que las > certificaciones las regalan. Los exámenes están para lo que están. Se > certifica determinado nivel en el uso de un lenguaje. Los portafolios hacen Tomando este punto y cuantos estarian particularmente interesados cuando el candidato que "dice saber python", les dice que fue a Pycon. Creo que la mayoria pensara (por lo menos demuestra tener el interes, por el lenguaje, ya que invirtio en ir). Creo que es paralelo a haber pagado a alguien para que certificara su conocimiento. > lo mismo... Pero igual los puedes falsificar. Nadie dice que una > certificación te convierta en un mega crack, pero si que tienes determinados > conocimientos. Hay una frase de Bernard Show: Los títulos diferencian a los > mediocres, embarazan a los inferiores y son desprestigiados por los > superiores. Cuando uno no tiene experiencia, un título, como mínimo da idea > de tus ganas e implicación, luego vendrá la experiencia. Saludos. > > -----Mensaje original----- > De: Alexandro Colorado > Enviado: 24/03/2013 21:55 > Para: La lista de python en castellano > Asunto: Re: [Python-es] Certificaciones Python > > On 3/24/13, Hernan M. F. wrote: >>> ? >>> En resumen, mi opinión es que una certificación es perder el tiempo y >>> tirar el dinero si no quieres trabajar en una gran consultora. >> >> Y ni siquiera. Sí lo he visto en temas de administración de redes, >> equipos, >> usuarios (ej. Cisco, Exchange, etc) pero en programación no me he >> encontrado >> con ningún caso. Para un junior con cero de experiencia le puede valer >> como >> un primer título pero en ese caso da igual el lenguaje. > > Por otro lado los lenguajes con certificaciones son los que son mas > disipadamente implementados en el mundo empresarial como Java, C#, y > hasta Visual Basic. Dicho esto la certificacion puede no ser el > factor. Sin embargo para analizar tu punto, seria, cual de los > desarrolladores certificados en Java, realmente tienen conocimiento de > Java. No hablo que sean grandes maestros del lenguaje, pero que puedan > dominar el API estandar de java, y puedan hacer aplicaciones "basicas" > de manera comoda. > > Tomando la certificacion de Linux como prueba, alguien certificado en > Linux puedo asegurar que sabe que es un redireccionador, usar vim (de > forma basica), saber que hace proc, mount, crear usuarios y > particionar un disco. > > La certificacion no lo hace un 'maestro' de linux pero si garantiza > que si le das una tarea basica (crear y configurar un usuario) lo > sabra hacer. > > Por otro lado quien invirtio dinero en una certificacion, muestra un > interes en el tema de alguien quien no lo ha hecho. Y tambien creo que > puede ser util para separarlo del 'monton' que solo cuentan con un > diploma universitario. > >> >> -H. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From s_48k en yahoo.com Sun Mar 24 22:43:08 2013 From: s_48k en yahoo.com (s_48k) Date: Sun, 24 Mar 2013 22:43:08 +0100 Subject: [Python-es] Certificaciones Python Message-ID: <856151.45022.bm@smtp127-mob.biz.mail.ir2.yahoo.com> No solo pagado, estudiado y programado. Insisto, si no sabes no apruebas. Y no hablo de trampas, de saber las preguntas previamente, porque tambien se puede ir a la pycon y no prestar atención o no enterarte de nada y ponerlo en el CV para fardar y que quede bonito. -----Mensaje original----- De: Alexandro Colorado Enviado: 24/03/2013 22:15 Para: La lista de python en castellano Asunto: Re: [Python-es] Certificaciones Python On 3/24/13, s_48k wrote: > Por momentos, y leyendo algunos de los comentarios, parece que creen que las > certificaciones las regalan. Los exámenes están para lo que están. Se > certifica determinado nivel en el uso de un lenguaje. Los portafolios hacen Tomando este punto y cuantos estarian particularmente interesados cuando el candidato que "dice saber python", les dice que fue a Pycon. Creo que la mayoria pensara (por lo menos demuestra tener el interes, por el lenguaje, ya que invirtio en ir). Creo que es paralelo a haber pagado a alguien para que certificara su conocimiento. > lo mismo... Pero igual los puedes falsificar. Nadie dice que una > certificación te convierta en un mega crack, pero si que tienes determinados > conocimientos. Hay una frase de Bernard Show: Los títulos diferencian a los > mediocres, embarazan a los inferiores y son desprestigiados por los > superiores. Cuando uno no tiene experiencia, un título, como mínimo da idea > de tus ganas e implicación, luego vendrá la experiencia. Saludos. > > -----Mensaje original----- > De: Alexandro Colorado > Enviado: 24/03/2013 21:55 > Para: La lista de python en castellano > Asunto: Re: [Python-es] Certificaciones Python > > On 3/24/13, Hernan M. F. wrote: >>> ? >>> En resumen, mi opinión es que una certificación es perder el tiempo y >>> tirar el dinero si no quieres trabajar en una gran consultora. >> >> Y ni siquiera. Sí lo he visto en temas de administración de redes, >> equipos, >> usuarios (ej. Cisco, Exchange, etc) pero en programación no me he >> encontrado >> con ningún caso. Para un junior con cero de experiencia le puede valer >> como >> un primer título pero en ese caso da igual el lenguaje. > > Por otro lado los lenguajes con certificaciones son los que son mas > disipadamente implementados en el mundo empresarial como Java, C#, y > hasta Visual Basic. Dicho esto la certificacion puede no ser el > factor. Sin embargo para analizar tu punto, seria, cual de los > desarrolladores certificados en Java, realmente tienen conocimiento de > Java. No hablo que sean grandes maestros del lenguaje, pero que puedan > dominar el API estandar de java, y puedan hacer aplicaciones "basicas" > de manera comoda. > > Tomando la certificacion de Linux como prueba, alguien certificado en > Linux puedo asegurar que sabe que es un redireccionador, usar vim (de > forma basica), saber que hace proc, mount, crear usuarios y > particionar un disco. > > La certificacion no lo hace un 'maestro' de linux pero si garantiza > que si le das una tarea basica (crear y configurar un usuario) lo > sabra hacer. > > Por otro lado quien invirtio dinero en una certificacion, muestra un > interes en el tema de alguien quien no lo ha hecho. Y tambien creo que > puede ser util para separarlo del 'monton' que solo cuentan con un > diploma universitario. > >> >> -H. >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org _______________________________________________ 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: From niwi en niwi.be Sun Mar 24 22:53:28 2013 From: niwi en niwi.be (Andrey Antukh) Date: Sun, 24 Mar 2013 22:53:28 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Message-ID: A mi mas sincera opinion, un titlo unico que hace es mostrar que precisas de un papel que diga que sabes X cosa. Y cuando digo que precisas de un papel me refiero que no sabes valerte por ti mismo. Las sertificaciones de poco sirven en el mundo de programacion en mi opinion. Aprende a programar, contribuye y crea codigo. Mantente activo en comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de que has contribuido y has desarrollado algo que un papel que dice que sabes algo. Andrey El 24 de marzo de 2013 22:08, s_48k escribió: > Por momentos, y leyendo algunos de los comentarios, parece que creen que > las certificaciones las regalan. Los exámenes están para lo que están. Se > certifica determinado nivel en el uso de un lenguaje. Los portafolios hacen > lo mismo... Pero igual los puedes falsificar. Nadie dice que una > certificación te convierta en un mega crack, pero si que tienes > determinados conocimientos. Hay una frase de Bernard Show: Los títulos > diferencian a los mediocres, embarazan a los inferiores y son > desprestigiados por los superiores. Cuando uno no tiene experiencia, un > título, como mínimo da idea de tus ganas e implicación, luego vendrá la > experiencia. Saludos. > ------------------------------ > De: Alexandro Colorado > Enviado: 24/03/2013 21:55 > Para: La lista de python en castellano > Asunto: Re: [Python-es] Certificaciones Python > > > On 3/24/13, Hernan M. F. wrote: > >> ? > >> En resumen, mi opinión es que una certificación es perder el tiempo y > >> tirar el dinero si no quieres trabajar en una gran consultora. > > > > Y ni siquiera. Sí lo he visto en temas de administración de redes, > equipos, > > usuarios (ej. Cisco, Exchange, etc) pero en programación no me he > encontrado > > con ningún caso. Para un junior con cero de experiencia le puede valer > como > > un primer título pero en ese caso da igual el lenguaje. > > Por otro lado los lenguajes con certificaciones son los que son mas > disipadamente implementados en el mundo empresarial como Java, C#, y > hasta Visual Basic. Dicho esto la certificacion puede no ser el > factor. Sin embargo para analizar tu punto, seria, cual de los > desarrolladores certificados en Java, realmente tienen conocimiento de > Java. No hablo que sean grandes maestros del lenguaje, pero que puedan > dominar el API estandar de java, y puedan hacer aplicaciones "basicas" > de manera comoda. > > Tomando la certificacion de Linux como prueba, alguien certificado en > Linux puedo asegurar que sabe que es un redireccionador, usar vim (de > forma basica), saber que hace proc, mount, crear usuarios y > particionar un disco. > > La certificacion no lo hace un 'maestro' de linux pero si garantiza > que si le das una tarea basica (crear y configurar un usuario) lo > sabra hacer. > > Por otro lado quien invirtio dinero en una certificacion, muestra un > interes en el tema de alguien quien no lo ha hecho. Y tambien creo que > puede ser util para separarlo del 'monton' que solo cuentan con un > diploma universitario. > > > > > -H. > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > _______________________________________________ > 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 - ?????? ????? - 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: From jza en oooes.org Sun Mar 24 23:24:11 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 16:24:11 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Message-ID: On 3/24/13, Andrey Antukh wrote: > A mi mas sincera opinion, un titlo unico que hace es mostrar que precisas > de un papel que diga que sabes X cosa. Y cuando digo que precisas de un > papel me refiero que no sabes valerte por ti mismo. > > Las sertificaciones de poco sirven en el mundo de programacion en mi > opinion. Aprende a programar, contribuye y crea codigo. Mantente activo en > comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de que > has contribuido y has desarrollado algo que un papel que dice que sabes > algo. Nunca he visto que un github lo pregunten en una entrevista de trabajo. > > Andrey > > > El 24 de marzo de 2013 22:08, s_48k escribió: > >> Por momentos, y leyendo algunos de los comentarios, parece que creen que >> las certificaciones las regalan. Los exámenes están para lo que están. Se >> certifica determinado nivel en el uso de un lenguaje. Los portafolios >> hacen >> lo mismo... Pero igual los puedes falsificar. Nadie dice que una >> certificación te convierta en un mega crack, pero si que tienes >> determinados conocimientos. Hay una frase de Bernard Show: Los títulos >> diferencian a los mediocres, embarazan a los inferiores y son >> desprestigiados por los superiores. Cuando uno no tiene experiencia, un >> título, como mínimo da idea de tus ganas e implicación, luego vendrá la >> experiencia. Saludos. >> ------------------------------ >> De: Alexandro Colorado >> Enviado: 24/03/2013 21:55 >> Para: La lista de python en castellano >> Asunto: Re: [Python-es] Certificaciones Python >> >> >> On 3/24/13, Hernan M. F. wrote: >> >> ? >> >> En resumen, mi opinión es que una certificación es perder el tiempo y >> >> tirar el dinero si no quieres trabajar en una gran consultora. >> > >> > Y ni siquiera. Sí lo he visto en temas de administración de redes, >> equipos, >> > usuarios (ej. Cisco, Exchange, etc) pero en programación no me he >> encontrado >> > con ningún caso. Para un junior con cero de experiencia le puede valer >> como >> > un primer título pero en ese caso da igual el lenguaje. >> >> Por otro lado los lenguajes con certificaciones son los que son mas >> disipadamente implementados en el mundo empresarial como Java, C#, y >> hasta Visual Basic. Dicho esto la certificacion puede no ser el >> factor. Sin embargo para analizar tu punto, seria, cual de los >> desarrolladores certificados en Java, realmente tienen conocimiento de >> Java. No hablo que sean grandes maestros del lenguaje, pero que puedan >> dominar el API estandar de java, y puedan hacer aplicaciones "basicas" >> de manera comoda. >> >> Tomando la certificacion de Linux como prueba, alguien certificado en >> Linux puedo asegurar que sabe que es un redireccionador, usar vim (de >> forma basica), saber que hace proc, mount, crear usuarios y >> particionar un disco. >> >> La certificacion no lo hace un 'maestro' de linux pero si garantiza >> que si le das una tarea basica (crear y configurar un usuario) lo >> sabra hacer. >> >> Por otro lado quien invirtio dinero en una certificacion, muestra un >> interes en el tema de alguien quien no lo ha hecho. Y tambien creo que >> puede ser util para separarlo del 'monton' que solo cuentan con un >> diploma universitario. >> >> > >> > -H. >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es en python.org >> > http://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> >> >> -- >> Alexandro Colorado >> Apache OpenOffice Contributor >> http://es.openoffice.org >> _______________________________________________ >> 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 - ?????? ????? - > 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" > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From hfoffani en gmail.com Sun Mar 24 23:42:59 2013 From: hfoffani en gmail.com (Hernan M. F.) Date: Sun, 24 Mar 2013 23:42:59 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> <514EF30E.4000305@email.de> <3EEE769A-06EC-4004-B81F-D6F79766F9F8@gmail.com> Message-ID: >>> En resumen, mi opinión es que una certificación es perder el tiempo y >>> tirar el dinero si no quieres trabajar en una gran consultora. >> >> Y ni siquiera. Sí lo he visto en temas de administración de redes, equipos, >> usuarios (ej. Cisco, Exchange, etc) pero en programación no me he encontrado >> con ningún caso. Para un junior con cero de experiencia le puede valer como >> un primer título pero en ese caso da igual el lenguaje. > > Por otro lado los lenguajes con certificaciones son los que son mas > disipadamente implementados en el mundo empresarial como Java, C#, y > hasta Visual Basic. Dicho esto la certificacion puede no ser el > factor. Sin embargo para analizar tu punto, seria, cual de los > desarrolladores certificados en Java, realmente tienen conocimiento de > Java. No hablo que sean grandes maestros del lenguaje, pero que puedan > dominar el API estandar de java, y puedan hacer aplicaciones "basicas" > de manera comoda. > > Tomando la certificacion de Linux como prueba, alguien certificado en > Linux puedo asegurar que sabe que es un redireccionador, usar vim (de > forma basica), saber que hace proc, mount, crear usuarios y > particionar un disco. > > La certificacion no lo hace un 'maestro' de linux pero si garantiza > que si le das una tarea basica (crear y configurar un usuario) lo > sabra hacer. > > Por otro lado quien invirtio dinero en una certificacion, muestra un > interes en el tema de alguien quien no lo ha hecho. Y tambien creo que > puede ser util para separarlo del 'monton' que solo cuentan con un > diploma universitario. > Lo que yo discuto es la utilidad de la certificación en Python no de la capacitación sea esta autodidacta, via talleres en conferencias y UGs o participando en proyectos open-source. La posesión del certificado no hace mas experto a un candidato respecto de otro ni le va a garantizar al empleador su maestría. Eso es así porque es mas importante que un programador sepa si un determinado algoritmo es O(n^2) u O(1) que los parámetros del inicializador de la clase SMTPServer. Si un profesional tiene una buena base teórica y conoce y ha desarrollado en varios lenguajes de programación será productivo en Python antes de aprenderse el mejor camino para ir de su casa a la empresa aunque no haya visto en su vida una línea de Python. Mi preferencia personal y no creo ser un caso aislado, al seleccionar candidatos los certificados son irrelevantes (los de grado/posgrado son otra cosa, eh!). Es que ya doy por supuesto que ha hecho cursos, asistido a conferencias y participado en foros ¿Puede *demostrarme* sus conocimientos? No, los diplomas de Brainbench o de los partners de Microsoft no me valen. ¿Hay algún proyecto open-source que haya participado? Eso sí que es suficiente. En cuanto a los lenguajes que mencionas podemos hablar largo y tendido pero te propongo dar vuelta el razonamiento: a pesar de no haber certificación oficial el crecimiento de Python en los últimos años es incomparable. (*) Saludos, -H. (*) Quizás Objective-C, del que tampoco hay certificación oficial. From s_48k en yahoo.com Mon Mar 25 00:02:04 2013 From: s_48k en yahoo.com (s_48k) Date: Mon, 25 Mar 2013 00:02:04 +0100 Subject: [Python-es] Certificaciones Python Message-ID: <107485.55806.bm@smtp102-mob.biz.mail.ird.yahoo.com> Hola Hernán, tu no miras las certificaciones, como no las mira casi nadie en España. En EEUU si se miran y son muy importantes de cara a conseguir un trabajo o mejorar el sueldo. Y si no me equivoco, EEUU sigue a la cabeza del mundo de la informática. A lo mejor nos valdría mas fijarnos en ellos que reinventar la rueda. -----Mensaje original----- De: Hernan M. F. Enviado: 24/03/2013 23:51 Para: La lista de python en castellano Asunto: Re: [Python-es] Certificaciones Python >>> En resumen, mi opinión es que una certificación es perder el tiempo y >>> tirar el dinero si no quieres trabajar en una gran consultora. >> >> Y ni siquiera. Sí lo he visto en temas de administración de redes, equipos, >> usuarios (ej. Cisco, Exchange, etc) pero en programación no me he encontrado >> con ningún caso. Para un junior con cero de experiencia le puede valer como >> un primer título pero en ese caso da igual el lenguaje. > > Por otro lado los lenguajes con certificaciones son los que son mas > disipadamente implementados en el mundo empresarial como Java, C#, y > hasta Visual Basic. Dicho esto la certificacion puede no ser el > factor. Sin embargo para analizar tu punto, seria, cual de los > desarrolladores certificados en Java, realmente tienen conocimiento de > Java. No hablo que sean grandes maestros del lenguaje, pero que puedan > dominar el API estandar de java, y puedan hacer aplicaciones "basicas" > de manera comoda. > > Tomando la certificacion de Linux como prueba, alguien certificado en > Linux puedo asegurar que sabe que es un redireccionador, usar vim (de > forma basica), saber que hace proc, mount, crear usuarios y > particionar un disco. > > La certificacion no lo hace un 'maestro' de linux pero si garantiza > que si le das una tarea basica (crear y configurar un usuario) lo > sabra hacer. > > Por otro lado quien invirtio dinero en una certificacion, muestra un > interes en el tema de alguien quien no lo ha hecho. Y tambien creo que > puede ser util para separarlo del 'monton' que solo cuentan con un > diploma universitario. > Lo que yo discuto es la utilidad de la certificación en Python no de la capacitación sea esta autodidacta, via talleres en conferencias y UGs o participando en proyectos open-source. La posesión del certificado no hace mas experto a un candidato respecto de otro ni le va a garantizar al empleador su maestría. Eso es así porque es mas importante que un programador sepa si un determinado algoritmo es O(n^2) u O(1) que los parámetros del inicializador de la clase SMTPServer. Si un profesional tiene una buena base teórica y conoce y ha desarrollado en varios lenguajes de programación será productivo en Python antes de aprenderse el mejor camino para ir de su casa a la empresa aunque no haya visto en su vida una línea de Python. Mi preferencia personal y no creo ser un caso aislado, al seleccionar candidatos los certificados son irrelevantes (los de grado/posgrado son otra cosa, eh!). Es que ya doy por supuesto que ha hecho cursos, asistido a conferencias y participado en foros ¿Puede *demostrarme* sus conocimientos? No, los diplomas de Brainbench o de los partners de Microsoft no me valen. ¿Hay algún proyecto open-source que haya participado? Eso sí que es suficiente. En cuanto a los lenguajes que mencionas podemos hablar largo y tendido pero te propongo dar vuelta el razonamiento: a pesar de no haber certificación oficial el crecimiento de Python en los últimos años es incomparable. (*) Saludos, -H. (*) Quizás Objective-C, del que tampoco hay certificación oficial. _______________________________________________ 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: From jza en oooes.org Mon Mar 25 00:05:51 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 17:05:51 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <514ECABB.3040407@email.de> <514ED7E6.4040704@email.de> <514EF30E.4000305@email.de> <3EEE769A-06EC-4004-B81F-D6F79766F9F8@gmail.com> Message-ID: On 3/24/13, Hernan M. F. wrote: >>>> En resumen, mi opinión es que una certificación es perder el tiempo y >>>> tirar el dinero si no quieres trabajar en una gran consultora. >>> >>> Y ni siquiera. Sí lo he visto en temas de administración de redes, >>> equipos, >>> usuarios (ej. Cisco, Exchange, etc) pero en programación no me he >>> encontrado >>> con ningún caso. Para un junior con cero de experiencia le puede valer >>> como >>> un primer título pero en ese caso da igual el lenguaje. >> >> Por otro lado los lenguajes con certificaciones son los que son mas >> disipadamente implementados en el mundo empresarial como Java, C#, y >> hasta Visual Basic. Dicho esto la certificacion puede no ser el >> factor. Sin embargo para analizar tu punto, seria, cual de los >> desarrolladores certificados en Java, realmente tienen conocimiento de >> Java. No hablo que sean grandes maestros del lenguaje, pero que puedan >> dominar el API estandar de java, y puedan hacer aplicaciones "basicas" >> de manera comoda. >> >> Tomando la certificacion de Linux como prueba, alguien certificado en >> Linux puedo asegurar que sabe que es un redireccionador, usar vim (de >> forma basica), saber que hace proc, mount, crear usuarios y >> particionar un disco. >> >> La certificacion no lo hace un 'maestro' de linux pero si garantiza >> que si le das una tarea basica (crear y configurar un usuario) lo >> sabra hacer. >> >> Por otro lado quien invirtio dinero en una certificacion, muestra un >> interes en el tema de alguien quien no lo ha hecho. Y tambien creo que >> puede ser util para separarlo del 'monton' que solo cuentan con un >> diploma universitario. >> > > Lo que yo discuto es la utilidad de la certificación en Python no de la > capacitación sea esta autodidacta, via talleres en conferencias y UGs o > participando en proyectos open-source. La posesión del certificado no hace > mas experto a un candidato respecto de otro ni le va a garantizar al > empleador su maestría. No estoy de acuerdo con esto. Muchas veces eso es precisamente lo que le puede asegurar con respecto a un candidato que no lo tenga. > > Eso es así porque es mas importante que un programador sepa si un > determinado algoritmo es O(n^2) u O(1) que los parámetros del inicializador > de la clase SMTPServer. Si un profesional tiene una buena base teórica y No creo que muchos programadores de Python eficientes necesariamente deban tener ese conocimiento. Ni recuerdo que algun empleador haga ese tipo d preguntas al entrevistar sobre Python. Para empezar la clase SMTPServer no esta directamente ligada con un programador de Python, como deber conocer JavaMail para programar en Java. De hecho usualmente las entrevistas de python van sobre el tiempo, cuanto tiempo tienes programando en python, estas familiarizado con el framework x, o z, y de ser asi, tienes alguna aplicacion en produccion que puedas referenciar. (no codigo). De hecho el gran groso de programadores no contributyen a software libre, por lo que no pueden mostrar lo que han hecho para otras empresas, y estas preguntas han sido muy escazas. No puedo decir en python especfiicamente pero si en PHP el cual he visto este tipo de entrevistas un millar de veces. Una certificcion en PHP (digamos Zend) definitivamente a muchos contratadores les llamaraia la atencion, y los separaria de los otros N candidatos. Digamos algo asi: experiencia wordpress framework mvc Candidato X 5 Si No Candidato Y 3 No Si Candidato Z 2 Si No Certificacion Zend:PHP En papel cual seria el mejor candidato? Yo me iria por el Z. > conoce y ha desarrollado en varios lenguajes de programación será productivo > en Python antes de aprenderse el mejor camino para ir de su casa a la > empresa aunque no haya visto en su vida una línea de Python. Si nunca ha visto en su vida una linea de python, creo que se notaria y nunca hubiera tenido una certificacion en nada. > Mi preferencia personal y no creo ser un caso aislado, al seleccionar > candidatos los certificados son irrelevantes (los de grado/posgrado son otra > cosa, eh!). Es que ya doy por supuesto que ha hecho cursos, asistido a Lo dudo, los posgrados de hecho han sido mas engañozos que las certificaciones. Muchas clases de posgrado son demasiado abstractas y se enfocan mas a la gestion que a la programacion. De hecho el buzzword de "metodologias de desarrollo" crea la falsa impresion que tiene que ver con codigo. > conferencias y participado en foros ¿Puede *demostrarme* sus conocimientos? > No, los diplomas de Brainbench o de los partners de Microsoft no me valen. > ¿Hay algún proyecto open-source que haya participado? Eso sí que es > suficiente. > > En cuanto a los lenguajes que mencionas podemos hablar largo y tendido pero > te propongo dar vuelta el razonamiento: a pesar de no haber certificación > oficial el crecimiento de Python en los últimos años es incomparable. (*) > > Saludos, > -H. > > (*) Quizás Objective-C, del que tampoco hay certificación oficial. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From hfoffani en gmail.com Mon Mar 25 00:07:33 2013 From: hfoffani en gmail.com (Hernan M. F.) Date: Mon, 25 Mar 2013 00:07:33 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Message-ID: <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> > >> A mi mas sincera opinion, un titlo unico que hace es mostrar que precisas >> de un papel que diga que sabes X cosa. Y cuando digo que precisas de un >> papel me refiero que no sabes valerte por ti mismo. >> >> Las sertificaciones de poco sirven en el mundo de programacion en mi >> opinion. Aprende a programar, contribuye y crea codigo. Mantente activo en >> comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de que >> has contribuido y has desarrollado algo que un papel que dice que sabes >> algo. > > Nunca he visto que un github lo pregunten en una entrevista de trabajo. Porque no se pregunta así. Lo que se pide es alguna forma de validar la capacidad y el conocimiento. Algunos candidatos responderán "Aquí tengo los diplomas de estos dos cursos" o "Puede hablar con mi exjefe", pero si otro dice "Puede ver mi colaboración al fork del proyecto tal-y-cual en sourceforge" no dudes ni un segundo de quién ha dado la mejor respuesta. -H. From lasizoillo en gmail.com Mon Mar 25 00:09:24 2013 From: lasizoillo en gmail.com (lasizoillo) Date: Mon, 25 Mar 2013 00:09:24 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> Message-ID: El día 24 de marzo de 2013 23:24, Alexandro Colorado escribió: > Nunca he visto que un github lo pregunten en una entrevista de trabajo. Yo si. En la empresa en la que estoy ahora no me preguntaron "que títulos tienes", me dijeron "show me the code". Y lo entiendo. Ahora me pongo agüelo cebolleta y doy la explicación larga. Hace como 10 años una consultora me puso el examen de certificación de Java para ver si era apto para el puesto. El puesto era para desarrollo web, pero muchas de las preguntas tenían relación con la librería Swing para hacer interfaces visuales. Y aunque tuviese más relación con el puesto, las preguntas son del tipo: que parámetros acepta la función X de la librería Y. En serio, ¿quién quiere que eso sea lo relevante a la hora de montar un equipo? Bueno, todos lo sabemos, las charcuteras que venden cuarto y mitad de programador a X el Junior, Y el Senior y Z el analista. Si entrevisto a alguien quiero que vaya a ser capaz de trabajar en equipo, que sepa comunicar de forma asertiva, que tenga creatividad para afrontar los problemas, que tenga humildad para reconocer los errores y sepa aprender de ellos, que le guste el código limpio, que sepa llegar a un equilibrio entre perfeccionismo y productividad, que tenga una buena culturilla general de tecnología, ... y también que sepa python. Y para casi todas esas cosas incluso una entrevista personal son insuficientes, no digo ya nada de una certificación que te da muy poca información (algo de conocimientos y de que no sabe administrar su presupuesto personal igual también). Un saludo, Javi From vladimircastillo en live.com Mon Mar 25 00:11:01 2013 From: vladimircastillo en live.com (vladimir castillo) Date: Sun, 24 Mar 2013 17:11:01 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com>, , , <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> Message-ID: De acuerdo con hfoffani > From: hfoffani en gmail.com > Date: Mon, 25 Mar 2013 00:07:33 +0100 > To: python-es en python.org > Subject: Re: [Python-es] Certificaciones Python > > > > >> A mi mas sincera opinion, un titlo unico que hace es mostrar que precisas > >> de un papel que diga que sabes X cosa. Y cuando digo que precisas de un > >> papel me refiero que no sabes valerte por ti mismo. > >> > >> Las sertificaciones de poco sirven en el mundo de programacion en mi > >> opinion. Aprende a programar, contribuye y crea codigo. Mantente activo en > >> comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de que > >> has contribuido y has desarrollado algo que un papel que dice que sabes > >> algo. > > > > Nunca he visto que un github lo pregunten en una entrevista de trabajo. > > Porque no se pregunta así. Lo que se pide es alguna forma de validar la capacidad y el conocimiento. > Algunos candidatos responderán "Aquí tengo los diplomas de estos dos cursos" o "Puede hablar con mi exjefe", pero si otro dice "Puede ver mi colaboración al fork del proyecto tal-y-cual en sourceforge" no dudes ni un segundo de quién ha dado la mejor respuesta. > > -H. > > _______________________________________________ > 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: From pych3m4 en gmail.com Mon Mar 25 00:37:52 2013 From: pych3m4 en gmail.com (Chema Cortes) Date: Mon, 25 Mar 2013 00:37:52 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: <8A5E7BF5-A405-4C58-9359-5BE1BD29B1DB@gmail.com> References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> <20130320141336.6b69faee@U002498.sn.ehu.es> <8A5E7BF5-A405-4C58-9359-5BE1BD29B1DB@gmail.com> Message-ID: El día 24 de marzo de 2013 21:09, Hernan M. F. escribió: >> > >> Supongo que habrá una explicación. Si realizo el siguiente cálculo: >> > >> >> > >> In [13]: import math >> > >> >> > >> In [14]: math.tan(math.pi/2) >> > >> Out[14]: 1.633123935319537e+16 >> > >> >> > >> Aunque no esperaba que me diese la solución correcta de >> > >> float("+inf")/float("-inf"), me resulta muy corto para el tamaño >> > >> máximo que podría tener un double: >> > >> >> > >> In [16]: sys.float_info.max >> > >> Out[16]: 1.7976931348623157e+308 >> > >> >> > >> He comprobado que pasa lo mismo con scala e, incluso, en el >> > >> buscador de google (tal vez sea que google usa también python): >> > >> >> > >> https://www.google.com/search?q=tan(pi%2F2) >> > >> >> > >> ¿Existe alguna explicación? > > > Supongo que a esta altura ya lo has resuelto, pero si no, añado algunas precisiones (pun intended). > > Lo de Python/Scala/Google es por la libm, la biblioteca matemática estándar de C. Esto muestra el mismo resultado que ves en Python (M_PI_2 es la constante PI/2 ya definida en la biblioteca): > > #include > #include > int main() { printf("%f\n", tan(M_PI_2)); } > > Matemáticamente hablando tan(pi/2) no está definido. El límite para valores tendiendo a pi/2 desde 0 es +inf y -inf para x desde 3. > Lo que mejor podría hacer tan() es devolver NaN pero debería saber que x es exactamente PI y no un número menor/mayor. Si pruebas con valores ligeramente mayores a M_PI_2 verás que tan() sí cambia el signo. > > La biblioteca resuelve bien algunas operaciones desde el punto de vista matemático ( ej. 1/+inf ) y otras no (ej. pow(-1, +inf) -> 1 y debería ser NaN o domain error). Las libm están llenas de compromisos de ese estilo por performance, implementación, precisión, etc. A esta altura su comportamiento está completamente estandarizado. > Me había quedado claro que es un tema de la librería matemática. Mi extrañeza venía por el bajo orden de magnitud del resultado, que queda explicado por la falta de precisión del número pi que emplea la librería matemática. Tal vez se aprecie mejor desde el lado contrario: In [1]: import sys, math In [2]: casi_infinito=sys.float_info.max In [3]: casi_infinito Out[3]: 1.7976931348623157e+308 In [4]: math.atan(casi_infinito)*2==math.pi Out[4]: True In [5]: math.atan(1.7e+16)*2==math.pi Out[5]: True -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales From jza en oooes.org Mon Mar 25 00:49:13 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 17:49:13 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> Message-ID: On 3/24/13, Hernan M. F. wrote: >> >>> A mi mas sincera opinion, un titlo unico que hace es mostrar que >>> precisas >>> de un papel que diga que sabes X cosa. Y cuando digo que precisas de un >>> papel me refiero que no sabes valerte por ti mismo. >>> >>> Las sertificaciones de poco sirven en el mundo de programacion en mi >>> opinion. Aprende a programar, contribuye y crea codigo. Mantente activo >>> en >>> comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de >>> que >>> has contribuido y has desarrollado algo que un papel que dice que sabes >>> algo. >> >> Nunca he visto que un github lo pregunten en una entrevista de trabajo. > > Porque no se pregunta así. Lo que se pide es alguna forma de validar la > capacidad y el conocimiento. > Algunos candidatos responderán "Aquí tengo los diplomas de estos dos cursos" > o "Puede hablar con mi exjefe", pero si otro dice "Puede ver mi colaboración > al fork del proyecto tal-y-cual en sourceforge" no dudes ni un segundo de > quién ha dado la mejor respuesta. Depende, ya que aunque segun tu es la mejor respuesta, quizas no lo sera para quien te entreviste. Como te pueden decir, quieres que lea tu proyecto de 300 lineas versus ver el documento y pasar a la siguiente pregunta. Algo similar alguna vez me paso en una platica (nada que ver con conseguir trabajo) donde yo muy motivado, le dije a un amigo, mira aqui tengo la conferencia que di en un evento colgada en Youtube. El solo me contesto, despues la veo (osea, nunca la vere). Aunque puedo ver que dirias, entonces no es un buen HR, y quizas tengas razon. pero al final el que pagara los platos, sera uno. > > -H. > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From pjmakey2 en gmail.com Mon Mar 25 05:24:36 2013 From: pjmakey2 en gmail.com (peter) Date: Mon, 25 Mar 2013 00:24:36 -0400 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com>, , , <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> Message-ID: <514FD184.2080301@gmail.com> Totalmente de acuerdo. A no ser de que el curso que otorga las certificaciones, sea un curso para acrecentar la experiencia de los participantes, justamente haciendo contribuciones a codigos. Lo que vale en realidad, son las experiencias sucesivas que vallas adquiriendo. Sea el area que te desempenhas. El 03/24/2013 07:11 PM, vladimir castillo escribió: > De acuerdo con hfoffani > > > From: hfoffani en gmail.com > > Date: Mon, 25 Mar 2013 00:07:33 +0100 > > To: python-es en python.org > > Subject: Re: [Python-es] Certificaciones Python > > > > > > > >> A mi mas sincera opinion, un titlo unico que hace es mostrar que > precisas > > >> de un papel que diga que sabes X cosa. Y cuando digo que precisas > de un > > >> papel me refiero que no sabes valerte por ti mismo. > > >> > > >> Las sertificaciones de poco sirven en el mundo de programacion en mi > > >> opinion. Aprende a programar, contribuye y crea codigo. Mantente > activo en > > >> comunidades. Hoy en dia vale mas tener github/bitbucket con > pruebas de que > > >> has contribuido y has desarrollado algo que un papel que dice que > sabes > > >> algo. > > > > > > Nunca he visto que un github lo pregunten en una entrevista de > trabajo. > > > > Porque no se pregunta así. Lo que se pide es alguna forma de validar > la capacidad y el conocimiento. > > Algunos candidatos responderán "Aquí tengo los diplomas de estos dos > cursos" o "Puede hablar con mi exjefe", pero si otro dice "Puede ver > mi colaboración al fork del proyecto tal-y-cual en sourceforge" no > dudes ni un segundo de quién ha dado la mejor respuesta. > > > > -H. > > > > _______________________________________________ > > 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/ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jza en oooes.org Mon Mar 25 06:09:04 2013 From: jza en oooes.org (Alexandro Colorado) Date: Sun, 24 Mar 2013 23:09:04 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: <514FD184.2080301@gmail.com> References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> <514FD184.2080301@gmail.com> Message-ID: On 3/24/13, peter wrote: > Totalmente de acuerdo. > > A no ser de que el curso que otorga las certificaciones, sea un curso > para acrecentar la experiencia de los participantes, justamente haciendo > contribuciones a codigos. Los cursos son usualmente desligados de la certificacion. > > Lo que vale en realidad, son las experiencias sucesivas que vallas > adquiriendo. Sea el area que te desempenhas. Excepto que las experiencias pueden no ser los correctos. De ahi los vicios de la programacion . > > El 03/24/2013 07:11 PM, vladimir castillo escribió: >> De acuerdo con hfoffani >> >> > From: hfoffani en gmail.com >> > Date: Mon, 25 Mar 2013 00:07:33 +0100 >> > To: python-es en python.org >> > Subject: Re: [Python-es] Certificaciones Python >> > >> > > >> > >> A mi mas sincera opinion, un titlo unico que hace es mostrar que >> precisas >> > >> de un papel que diga que sabes X cosa. Y cuando digo que precisas >> de un >> > >> papel me refiero que no sabes valerte por ti mismo. >> > >> >> > >> Las sertificaciones de poco sirven en el mundo de programacion en mi >> > >> opinion. Aprende a programar, contribuye y crea codigo. Mantente >> activo en >> > >> comunidades. Hoy en dia vale mas tener github/bitbucket con >> pruebas de que >> > >> has contribuido y has desarrollado algo que un papel que dice que >> sabes >> > >> algo. >> > > >> > > Nunca he visto que un github lo pregunten en una entrevista de >> trabajo. >> > >> > Porque no se pregunta así. Lo que se pide es alguna forma de validar >> la capacidad y el conocimiento. >> > Algunos candidatos responderán "Aquí tengo los diplomas de estos dos >> cursos" o "Puede hablar con mi exjefe", pero si otro dice "Puede ver >> mi colaboración al fork del proyecto tal-y-cual en sourceforge" no >> dudes ni un segundo de quién ha dado la mejor respuesta. >> > >> > -H. >> > >> > _______________________________________________ >> > 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/ > > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org From niwi en niwi.be Mon Mar 25 10:57:41 2013 From: niwi en niwi.be (Andrey Antukh) Date: Mon, 25 Mar 2013 10:57:41 +0100 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> Message-ID: El 25 de marzo de 2013 00:49, Alexandro Colorado escribió: > On 3/24/13, Hernan M. F. wrote: > >> > >>> A mi mas sincera opinion, un titlo unico que hace es mostrar que > >>> precisas > >>> de un papel que diga que sabes X cosa. Y cuando digo que precisas de un > >>> papel me refiero que no sabes valerte por ti mismo. > >>> > >>> Las sertificaciones de poco sirven en el mundo de programacion en mi > >>> opinion. Aprende a programar, contribuye y crea codigo. Mantente activo > >>> en > >>> comunidades. Hoy en dia vale mas tener github/bitbucket con pruebas de > >>> que > >>> has contribuido y has desarrollado algo que un papel que dice que sabes > >>> algo. > >> > >> Nunca he visto que un github lo pregunten en una entrevista de trabajo. > > > > Porque no se pregunta así. Lo que se pide es alguna forma de validar la > > capacidad y el conocimiento. > > Algunos candidatos responderán "Aquí tengo los diplomas de estos dos > cursos" > > o "Puede hablar con mi exjefe", pero si otro dice "Puede ver mi > colaboración > > al fork del proyecto tal-y-cual en sourceforge" no dudes ni un segundo de > > quién ha dado la mejor respuesta. > > Depende, ya que aunque según tu es la mejor respuesta, quizás no lo > sera para quien te entreviste. Como te pueden decir, quieres que lea > tu proyecto de 300 lineas versus ver el documento y pasar a la > siguiente pregunta. > > Algo similar alguna vez me paso en una platica (nada que ver con > conseguir trabajo) donde yo muy motivado, le dije a un amigo, mira > aquí tengo la conferencia que di en un evento colgada en Youtube. El > solo me contesto, después la veo (osea, nunca la veré). > Me encanta esta analogía, pero suponer que una empresa va a tener el mismo comportamiento que tu amigo a la hora de investigar al posible candidato...es ser un poco valiente. Ademas, diría mucho de la empresa :P En mi mas sincera opinión, una empresa a la que solo le importa tus papeles, le importas una mierda quien eres, lo que quiere es un mono sin pelo que pique código sentado mirando a una pared. Los papeles pueden aportar cosas pero nunca ser la prueba definitiva de tu capacidad, como persona y tus capacidades tecnicas. ;) Andrey > > Aunque puedo ver que dirías, entonces no es un buen HR, y quizás > tengas razón. pero al final el que pagara los platos, sera uno. > > > > > -H. > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > _______________________________________________ > 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 - ?????? ????? - 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: From francisco.palm en gmail.com Mon Mar 25 13:51:09 2013 From: francisco.palm en gmail.com (Francisco Palm) Date: Mon, 25 Mar 2013 08:21:09 -0430 Subject: [Python-es] Certificaciones Python In-Reply-To: References: <232834.4811.bm@smtp112-mob.biz.mail.ird.yahoo.com> <45BBEAE7-6522-4EAC-A48B-4E023F1FBE2E@gmail.com> Message-ID: Pienso que se está hablando acá en muchos planos distintos, momentos de la vida, expectativas, experiencia. Lo ideal, sin duda, sería no depender de alguien que te dé un empleo, ser emprendedor, darle forma a una idea. Pero lograr esto tiene muchas precondiciones: fuentes de financiamiento, no tener necesidades inmediatas... Hay quién está interesado en entrar en una gran empresa, y con suerte escalar dentro de esa empresa y/o disfrutar de la estabilidad que le brinda, es muy probable que tengan que pasar por certificaciones y evaluaciones estándar, a menos que sea una gran empresa innovadora lo usual es que les interesen desarrolladores en software no libre. Por otro lado hay quien se siente más cómodo en una pequeña empresa, más ágil y dinámica, por lo general a estas empresas les interesa ver en repositorios de software, evaluar en base a un proyectos realizados o tareas de desarrollo específicas. Acá no interesan certificaciones y el software libre es vital para sobrevivir y para apoyar las dinámicas. Saludos F. Palm -- -------------------------------------- fpalm en mapologo.org.ve francisco.palm en gmail.com cel: +58 +424 7228252 tel: +58 +274 6352001 ---- Debemos ser libres, no para hacer lo que nos plazca, sino libres para comprender muy profundamente nuestros propios instintos e impulsos. K ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From zodman en gmail.com Mon Mar 25 16:42:21 2013 From: zodman en gmail.com (Andres Vargas) Date: Mon, 25 Mar 2013 09:42:21 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: References: Message-ID: No hay certificaciones en python por que no hay un ente avalado que de el "visto bueno". El único ente que podría hacer eso es la PSF no tiene esa función. En el 2008 se discutió eso internamente y no se llego a nada. http://www.python.org/psf/records/board/minutes/2008-07-14/ El 23 de marzo de 2013 21:34, Alexandro Colorado escribió: > El topico de certificaciones tarde o temprano aparece por los diversos > grupos tecnicos que tengo. Un amigo tiene inclusive una certificacion (de > su empresa) en Python. Figuras del mundo de Python como Alex Martelli han > sido muy notorios por su posicion en conta de una certificacion. Sin > embargo en el mundo empresarial son muy pro-certificaciones, inclusive en > Linux, las certificaciones LPI, Linux+ RedHat etc, han sido algo exitosas a > la hora de contratar. Alguna opinion al caso? > > -- > Alexandro Colorado > Apache OpenOffice Contributor > http://es.openoffice.org > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Andres Vargas www.zodman.com.mx ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From hfoffani en gmail.com Mon Mar 25 18:07:35 2013 From: hfoffani en gmail.com (=?iso-8859-1?Q?Hern=E1n_Foffani?=) Date: Mon, 25 Mar 2013 18:07:35 +0100 Subject: [Python-es] El infinito se me queda corto In-Reply-To: References: <8A71FC47-2D88-45DC-A987-DA9B41A4C66F@iaa.es> <20130320141336.6b69faee@U002498.sn.ehu.es> <8A5E7BF5-A405-4C58-9359-5BE1BD29B1DB@gmail.com> Message-ID: <32278D72-9936-4CC1-8A38-599CD6DA3262@gmail.com> >>>>>> Supongo que habrá una explicación. Si realizo el siguiente cálculo: >>>>>> >>>>>> In [13]: import math >>>>>> >>>>>> In [14]: math.tan(math.pi/2) >>>>>> Out[14]: 1.633123935319537e+16 >>>>>> >>>>>> Aunque no esperaba que me diese la solución correcta de >>>>>> float("+inf")/float("-inf"), me resulta muy corto para el tamaño >>>>>> máximo que podría tener un double: >>>>>> >>>>>> In [16]: sys.float_info.max >>>>>> Out[16]: 1.7976931348623157e+308 >>>>>> >>>>>> He comprobado que pasa lo mismo con scala e, incluso, en el >>>>>> buscador de google (tal vez sea que google usa también python): >>>>>> >>>>>> https://www.google.com/search?q=tan(pi%2F2) >>>>>> >>>>>> ¿Existe alguna explicación? >> >> >> Supongo que a esta altura ya lo has resuelto, pero si no, añado algunas precisiones (pun intended). >> >> Lo de Python/Scala/Google es por la libm, la biblioteca matemática estándar de C. Esto muestra el mismo resultado que ves en Python (M_PI_2 es la constante PI/2 ya definida en la biblioteca): >> >> #include >> #include >> int main() { printf("%f\n", tan(M_PI_2)); } >> >> Matemáticamente hablando tan(pi/2) no está definido. El límite para valores tendiendo a pi/2 desde 0 es +inf y -inf para x desde 3. >> Lo que mejor podría hacer tan() es devolver NaN pero debería saber que x es exactamente PI y no un número menor/mayor. Si pruebas con valores ligeramente mayores a M_PI_2 verás que tan() sí cambia el signo. >> >> La biblioteca resuelve bien algunas operaciones desde el punto de vista matemático ( ej. 1/+inf ) y otras no (ej. pow(-1, +inf) -> 1 y debería ser NaN o domain error). Las libm están llenas de compromisos de ese estilo por performance, implementación, precisión, etc. A esta altura su comportamiento está completamente estandarizado. >> > > Me había quedado claro que es un tema de la librería matemática. Mi > extrañeza venía por el bajo orden de magnitud del resultado, que queda > explicado por la falta de precisión del número pi que emplea la > librería matemática. > > Tal vez se aprecie mejor desde el lado contrario: > > In [1]: import sys, math > In [2]: casi_infinito=sys.float_info.max > In [3]: casi_infinito > Out[3]: 1.7976931348623157e+308 > In [4]: math.atan(casi_infinito)*2==math.pi > Out[4]: True > In [5]: math.atan(1.7e+16)*2==math.pi > Out[5]: True Así es. El "siguiente" valor a PI/2 que se podría representar en flotantes es PI/2 + epsilon, pero ese ya se pasa y la tangente ya viene del -inf. >>> import sys >>> import math >>> >>> math.tan((math.pi/2)+sys.float_info.epsilon) -6218431163823738.0 >>> -H. From lesthack en gmail.com Mon Mar 25 23:18:34 2013 From: lesthack en gmail.com (lesthack) Date: Mon, 25 Mar 2013 16:18:34 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: References: Message-ID: Hace algunas semanas pregunte algo muy parecido a lo que Alejandro Colorado lo hizo al abrir este tópico. Googleando me encontré con Python Programming Certificate de O'Reilly. Así que pregunte quien sabía algo al respecto, si alguien había realizado alguna certificación de O'Reilly o de cualquier lugar. Ahora me doy cuenta, que al menos, quienes están respondiendo este hilo y programan Python, no cuentan con alguna, ya sea por que no hay una entidad realmente "oficial" de algún modo, o no están interesados en estas. Será así la situación ? 2013/3/25 Andres Vargas > No hay certificaciones en python por que no hay un ente avalado que de el > "visto bueno". > > El único ente que podría hacer eso es la PSF no tiene esa función. > > En el 2008 se discutió eso internamente y no se llego a nada. > > > http://www.python.org/psf/records/board/minutes/2008-07-14/ > > > El 23 de marzo de 2013 21:34, Alexandro Colorado escribió: > >> El topico de certificaciones tarde o temprano aparece por los diversos >> grupos tecnicos que tengo. Un amigo tiene inclusive una certificacion (de >> su empresa) en Python. Figuras del mundo de Python como Alex Martelli han >> sido muy notorios por su posicion en conta de una certificacion. Sin >> embargo en el mundo empresarial son muy pro-certificaciones, inclusive en >> Linux, las certificaciones LPI, Linux+ RedHat etc, han sido algo exitosas a >> la hora de contratar. Alguna opinion al caso? >> >> -- >> Alexandro Colorado >> Apache OpenOffice Contributor >> http://es.openoffice.org >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > Andres Vargas > www.zodman.com.mx > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- ________________________________________________________ ISC. Jorge Luis Hernández C. Desarrollador de Software y Tecnologías Libres Colaborador GNU/Linux Debian México http://lesthack.com.mx http://blog.debian.mx/ @lesthack ________________________________________________________ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jza en oooes.org Tue Mar 26 03:35:26 2013 From: jza en oooes.org (Alexandro Colorado) Date: Mon, 25 Mar 2013 20:35:26 -0600 Subject: [Python-es] Certificaciones Python In-Reply-To: References: Message-ID: 2013/3/25 lesthack > Hace algunas semanas pregunte algo muy parecido a lo que Alejandro > Colorado lo hizo al abrir este tópico. > > Googleando me encontré con Python Programming Certificate de O'Reilly. Así > que pregunte quien sabía algo al respecto, si alguien había realizado > alguna certificación de O'Reilly o de cualquier lugar. > De hecho yo tambien lo encontre, y quizas las empresas mas representativas de Python podria ser ActiveState y O'Reilly ya que por muchos años han sido gestoras de contenido en Python. Leyendo el syllabus veo que esta hecho por otro de los lideres de Python y al revisar el temario tambien vi qu eesta mucho mas orgnaizado que por ejemplo el de Zend, el cual tiene una forma de presentacion mas generica sobre areas de programacion. Por el otro lado veo que este temario es un poco mas orientado a objetivos y creo que esta dividido en areas que quizas un programador deberia ser funcional. Dicho esto, parece que la certificacion se da unicamente al finalizar los tres niveles, cosa que es algo más complejo que otras certificaciones que solo necesitas hacer 2 o 1, o tienen diferentes niveles de certificacion. Zend tiene una certificacion para PHP (generico) y otra para su Framework, y las tiene en dos niveles, basico y avanzado. En Appspot tambien puedes encontrar examenes de prueba para completar la certrificacion de zend en php y creo que es algo similar a lo que se esperaria de Python. La pregunta sobre si esto es o no es lo mejor, quizas puede tener mas sentido tras haber revisado este material. En mi opinion, y por lo que lei en OReilly parece que un programador de Python que haya completado estos tres niveles, me da la seguridad que tienen un conocimiento mas uniforme y redondo en Python que si solo ha contribuido o desarrollado ciertos proyectos especificos en Python. Ya que los proyectos pueden no estar directamente conectado con la experiencia en el medio. (scripting vs web vs telcos). > > Ahora me doy cuenta, que al menos, quienes están respondiendo este hilo y > programan Python, no cuentan con alguna, ya sea por que no hay una entidad > realmente "oficial" de algún modo, o no están interesados en estas. > > Será así la situación ? > > > > > 2013/3/25 Andres Vargas > >> No hay certificaciones en python por que no hay un ente avalado que de el >> "visto bueno". >> >> El único ente que podría hacer eso es la PSF no tiene esa función. >> >> En el 2008 se discutió eso internamente y no se llego a nada. >> >> >> http://www.python.org/psf/records/board/minutes/2008-07-14/ >> >> >> El 23 de marzo de 2013 21:34, Alexandro Colorado escribió: >> >>> El topico de certificaciones tarde o temprano aparece por los diversos >>> grupos tecnicos que tengo. Un amigo tiene inclusive una certificacion (de >>> su empresa) en Python. Figuras del mundo de Python como Alex Martelli han >>> sido muy notorios por su posicion en conta de una certificacion. Sin >>> embargo en el mundo empresarial son muy pro-certificaciones, inclusive en >>> Linux, las certificaciones LPI, Linux+ RedHat etc, han sido algo exitosas a >>> la hora de contratar. Alguna opinion al caso? >>> >>> -- >>> Alexandro Colorado >>> Apache OpenOffice Contributor >>> http://es.openoffice.org >>> >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> http://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> >> >> -- >> Andres Vargas >> www.zodman.com.mx >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > > -- > ________________________________________________________ > > ISC. Jorge Luis Hernández C. > Desarrollador de Software y Tecnologías Libres > > Colaborador GNU/Linux Debian México > http://lesthack.com.mx > http://blog.debian.mx/ > @lesthack > ________________________________________________________ > > _______________________________________________ > Python-es mailing list > Python-es en python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Tue Mar 26 17:07:12 2013 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Tue, 26 Mar 2013 12:07:12 -0400 Subject: [Python-es] por que urllib2 trata codigo 201 como un error? Message-ID: Hola, estoy escribiendo un pequegno cliente que manda mensajes HTTP PUT a un server, y recibe un codigo 201 CREATED cuando todo va bien. Sin embargo, parece que urllib2 interpreta ese 201 como un error. Por que? Se puede evitar sin tener que usar un try - except? Aqui [1] un trozo del codigo, y aqui [2] el traceback que se produce. Cualquier comentario es mas que bienvenido. Muchas gracias, Jose ------------------------------------------------------------------------------------------------------------------------------------------- [1] opener = urllib2.build_opener(urllib2.HTTPHandler) request = urllib2.Request(url, data=data) request.get_method = lambda: 'PUT' out = opener.open(request) [2] Traceback (most recent call last): File "./register_factory.py", line 56, in ? register_factory() File "./register_factory.py", line 52, in register_factory url = opener.open(request) File "/usr/lib64/python2.4/urllib2.py", line 364, in open response = meth(req, response) File "/usr/lib64/python2.4/urllib2.py", line 471, in http_response response = self.parent.error( File "/usr/lib64/python2.4/urllib2.py", line 402, in error return self._call_chain(*args) File "/usr/lib64/python2.4/urllib2.py", line 337, in _call_chain result = func(*args) File "/usr/lib64/python2.4/urllib2.py", line 480, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 201: CREATED ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nadaird en gmail.com Tue Mar 26 17:43:59 2013 From: nadaird en gmail.com (G V) Date: Tue, 26 Mar 2013 17:43:59 +0100 Subject: [Python-es] por que urllib2 trata codigo 201 como un error? In-Reply-To: References: Message-ID: leyendo de stackoverflow[1], creo que trata todo como un error ("200 error codes" no se por qué no lo llama de otra manera) por lo que tienes que ser tu quien haga un handler que lo gestione [1] http://stackoverflow.com/questions/7032890/why-does-pythons-urllib2-urlopen-raise-an-httperror-for-successful-status-cod 2013/3/26 Jose Caballero > Hola, > > > > estoy escribiendo un pequegno cliente que manda mensajes HTTP PUT a un > server, y recibe un codigo 201 CREATED cuando todo va bien. > Sin embargo, parece que urllib2 interpreta ese 201 como un error. Por que? > Se puede evitar sin tener que usar un try - except? > Aqui [1] un trozo del codigo, y aqui [2] el traceback que se produce. > > Cualquier comentario es mas que bienvenido. > > > > Muchas gracias, > Jose > > > > ------------------------------------------------------------------------------------------------------------------------------------------- > > [1] > > opener = urllib2.build_opener(urllib2.HTTPHandler) > request = urllib2.Request(url, data=data) > request.get_method = lambda: 'PUT' > out = opener.open(request) > > > [2] > > Traceback (most recent call last): > File "./register_factory.py", line 56, in ? > register_factory() > File "./register_factory.py", line 52, in register_factory > url = opener.open(request) > File "/usr/lib64/python2.4/urllib2.py", line 364, in open > response = meth(req, response) > File "/usr/lib64/python2.4/urllib2.py", line 471, in http_response > response = self.parent.error( > File "/usr/lib64/python2.4/urllib2.py", line 402, in error > return self._call_chain(*args) > File "/usr/lib64/python2.4/urllib2.py", line 337, in _call_chain > result = func(*args) > File "/usr/lib64/python2.4/urllib2.py", line 480, in http_error_default > raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) > urllib2.HTTPError: HTTP Error 201: CREATED > > > _______________________________________________ > 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: From moises.brenes en gmail.com Tue Mar 26 17:44:13 2013 From: moises.brenes en gmail.com (Moises Brenes) Date: Tue, 26 Mar 2013 10:44:13 -0600 Subject: [Python-es] por que urllib2 trata codigo 201 como un error? In-Reply-To: References: Message-ID: 2013/3/26 Jose Caballero : > Hola, > > > > estoy escribiendo un pequegno cliente que manda mensajes HTTP PUT a un > server, y recibe un codigo 201 CREATED cuando todo va bien. > Sin embargo, parece que urllib2 interpreta ese 201 como un error. Por que? > Se puede evitar sin tener que usar un try - except? > Aqui [1] un trozo del codigo, y aqui [2] el traceback que se produce. > > Cualquier comentario es mas que bienvenido. > > > > Muchas gracias, > Jose > > > ------------------------------------------------------------------------------------------------------------------------------------------- > > [1] > > opener = urllib2.build_opener(urllib2.HTTPHandler) > request = urllib2.Request(url, data=data) > request.get_method = lambda: 'PUT' > out = opener.open(request) > > > [2] > > Traceback (most recent call last): > File "./register_factory.py", line 56, in ? > register_factory() > File "./register_factory.py", line 52, in register_factory > url = opener.open(request) > File "/usr/lib64/python2.4/urllib2.py", line 364, in open > response = meth(req, response) > File "/usr/lib64/python2.4/urllib2.py", line 471, in http_response > response = self.parent.error( > File "/usr/lib64/python2.4/urllib2.py", line 402, in error > return self._call_chain(*args) > File "/usr/lib64/python2.4/urllib2.py", line 337, in _call_chain > result = func(*args) > File "/usr/lib64/python2.4/urllib2.py", line 480, in http_error_default > raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) > urllib2.HTTPError: HTTP Error 201: CREATED > http://stackoverflow.com/questions/7032890/why-does-pythons-urllib2-urlopen-raise-an-httperror-for-successful-status-cod From rggg88 en hotmail.com Wed Mar 27 16:37:04 2013 From: rggg88 en hotmail.com (Rafael Gomes) Date: Wed, 27 Mar 2013 15:37:04 +0000 Subject: [Python-es] Duda sobre http post Message-ID: Buenas tardes amigos todo bien? Espero que este todo bien con ustedes. Disculpen molestar, pero despues de entender y trabajar un poco con el rest api con la ayuda de bootle, me puse a hacer unas funciones para hacer post, y get de un servidor simple, solo que la funcion me queda en ciclo infinito. Mi idea es la siguiente tengo mi servidor con la siguiente estructura: from bottle import run, get, post, request, error, route import httplib from json import loads,dumps from funcoes_links import get_links, matriz_links, record_links, list_port_links, matriz_adjacencia, matriz_adjacencia_bw from funcoes_interfaces import get_interfaces,get_ovs, get_port,get_interface_list, get_list_port_host, get_list_lb from funcoes_estatisticas import get_statistics, matriz_statistics, filter_statistics from funcoes_rest_api import keep_list, send_info_to_list, topologia @get('/monitoring/topology') def monotoring_form(): ma,ma_bw=topologia() return {"Topologia_phy": ma,"Topologia_bw": ma_bw} @post('/monitoring') def get_endpoint(): fich = request.json ip=keep_list(fich) # La funcion anterior, al ser enviado un curl de la siguiente forma: curl -H "Accept: application/json" -H "Content-type: application/json" -X POST http://193.136.93.140:8081/monitoring -d '{"endpoint":"/brain/topology"}' -v me busca la direccion ip o sea /brain/topology send_info_to_list(ip) # Esta funcion quiero que envie para la direccion ip anterior, esto es, /brain/topology envie la informacion de la topologia de mi red, para eso utilizo la peticion post de la httplib @post('/brain/topology') def post_brain(): fich=request.json ip=keep_list(fich) print ip Las funciones keep_list y send_info_to_list(ip) tienen la siguiente estructura: def keep_list(lista): list_ip=[] novo_ip=lista['endpoint'] if novo_ip not in list_ip: list_ip.append(novo_ip) return list_ip def send_info_to_list(lista): for ip in lista: print repr(ip) params2,params = topologia() params =json.dumps(params) params2=json.dumps(params2) headers = {'Content-type': 'application/json', 'Accept': 'application/json'} print 'aqui' conn = httplib.HTTPConnection("193.136.93.140:8081") print 'aqui2' conn.request("POST", ip, params, headers) print 'aqui3' response = conn.getresponse() print response.status data = response.read() print data conn.request("POST", ip, params2, headers) response = conn.getresponse() print response.status print 'resp2' + str(response) data =response.read() print 'data2' + str(data) conn.close() def topologia(): info_links =get_links() info_interfaces=get_interfaces() info,links=matriz_links(info_links) switch=get_ovs(info_interfaces) portos=list_port_links(info,switch) matriz_adjacente=matriz_adjacencia(links,switch) matriz_interface=get_port(info_interfaces) lista_host=get_interface_list(matriz_interface, portos, switch) lista_portos_host=get_list_port_host(matriz_interface,portos,switch) lista_sw"Topologia_phy":itch_bw, lista_host_bw=get_list_lb(matriz_interface,portos,switch) matriz_bw=matriz_adjacencia_bw(links,switch,lista_switch_bw) return matriz_adjacente, matriz_bw # devuelve la información de la siguiente forma: matriz_bw= [[0, "100MbFD"], ["100MbFD", 0]] matriz_adjacente= [[0, 1], [1, 0]]} El problema esta en la funcion send_info_to_list, pues sin ella no me da errores, solo que ya experimente varias ideas para aquello y no consigo. En el terminal que hago el post manual me queda asi: curl -H "Accept: application/json" -H "Content-type: application/json" -X POST http://193.136.93.140:8081/monitoring -d '{"endpoint":"/brain/topology"}' -v * About to connect() to 193.136.93.140 port 8081 (#0) * Trying 193.136.93.140... connected > POST /monitoring HTTP/1.1 > User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: 193.136.93.140:8081 > Accept: application/json > Content-type: application/json > Content-Length: 30 > * upload completely sent off: 30out of 30 bytes y no avanza pienso que la funcion queda en ciclo infinito. Si me pueden ayudar agradecia, si necesitan de otro tipo de informacion o asi digan que trato de me explicar mejor. Muchas gracias por vuestro tiempo ayuda y disponibilidad. Saludos cordiales, Rafael. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: