<div dir="ltr">Solucionado, dejo adjunto.</div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 19:56, Jhonatan Sneider Salguero Villa <span dir="ltr"><<a href="mailto:sney2002@gmail.com" target="_blank">sney2002@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hola,<div><br></div><div>por lo que veo el json esta mal formado (o le falta una parte a la cadena), para poder parsearlo hay que eliminar la parte sobrante:</div>
<div><br></div><div>import json</div><div><br>
</div><div># remover la parte sobrante</div><div>json_string = json_string = string.replace(',"version":"1.0" ', '}')</div><div><br></div><div>data = json.loads(json_string)</div><div>
<br>
</div><div># si la cadena tiene la misma estructura siempre puedes hacer esto</div><div>channels = data["result"]["devices"][0]["channels"]</div><div><br></div><div>key_value = map(lambda a: a.items(), channels)</div>
<div><br></div><div>con esto tienes una lista de listas con el formato</div><div><br></div><div>[('value', valor_value), ('meta', valor_meta), ('name', valor_name), ('unit', valor_unit)]<br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 15:55, Miguel Angel Rodriguez <span dir="ltr"><<a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a>></span> escribió:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13px">Este es un ejemplo de lo que recibo:</span><div style="font-family:arial,sans-serif;font-size:13px">
<div><br></div><div>{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"}, {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{" name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":" "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0" <br>
</div><div><br></div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">Quiero parsearlo para poder almacenar en unas variables que tengo los values que aparecen en el JSON. De esta forma:</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"> Con la solucion con expresiones regulares en cada iteracion tengo lo siguiente: </font></div>
<div style="font-family:arial,sans-serif;font-size:13px"> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del meta),value,(valor del value)]<font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">En esa iteracion hago lo siguiente:</div><div style="font-family:arial,sans-serif;font-size:13px">if d_value[1] == "PF":</div><div style="font-family:arial,sans-serif;font-size:13px">
mi_variable_PF = d_value[7]</div><div style="font-family:arial,sans-serif;font-size:13px">if d_value[1] == "Fac":</div><div style="font-family:arial,sans-serif;font-size:13px"> mi_variable_Fac = d_value[7]</div>
<div style="font-family:arial,sans-serif;font-size:13px">.....</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">No necesito todos los values, solo los que corresponden a unos determinados name.</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">Con la solucion con expresiones regulares tengo el siguiente bug:</font></div>
</div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">Alguna veces en el json aparece "unit":"". Es decir, la clave key no tiene valor, por lo que obtengo un array de solo 7 elementos (sin el elemento valor del unit) y consigo recuperar el value para ese name. ¿Alguien me podría ayudar con esto?</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">Por ultimo, con la solucion con JSON, ¿es necesario usar ficheros? No se como será el manejo de ficheros en el sistema donde va a funcionar este python.</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px">
<font face="arial, sans-serif">Gracias y un saludo</font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 22:53, Miguel Angel Rodriguez <span dir="ltr"><<a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Este es un ejemplo de lo que recibo:<div><div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">{"format":"JSON","result":{"</span><span style="font-family:arial,sans-serif;font-size:13px">devices":[{"key":"SCGDE1BA:</span><span style="font-family:arial,sans-serif;font-size:13px">180340320","channels":[{"name"</span><span style="font-family:arial,sans-serif;font-size:13px">:"PF","unit":"","meta":"PF","</span><span style="font-family:arial,sans-serif;font-size:13px">value":"1.000"},{"name":"P-</span><span style="font-family:arial,sans-serif;font-size:13px">WSpt","unit":"kW","meta":"P-</span><span style="font-family:arial,sans-serif;font-size:13px">WSpt","value":"935"}, {"name":"Vac","unit":"V","</span><span style="font-family:arial,sans-serif;font-size:13px">meta":"Vac","value":"217.5"},{</span><span style="font-family:arial,sans-serif;font-size:13px">"name":"Iac","unit":"A","meta"</span><span style="font-family:arial,sans-serif;font-size:13px">:"Iac","value":"513.8"},{"</span><span style="font-family:arial,sans-serif;font-size:13px">name":"Pac","unit":"kW","meta"</span><span style="font-family:arial,sans-serif;font-size:13px">:"Pac","value":"335.2"},{"</span><span style="font-family:arial,sans-serif;font-size:13px">name":"Qac","unit":"kV Ar","meta":"Qac","value":"-1.</span><span style="font-family:arial,sans-serif;font-size:13px">0"},{"name":"Sac","unit":"kVA"</span><span style="font-family:arial,sans-serif;font-size:13px">,"meta":"Sac","value":"335.1"}</span><span style="font-family:arial,sans-serif;font-size:13px">,{"name":"Fac","unit":"Hz","</span><span style="font-family:arial,sans-serif;font-size:13px">meta":"Fac","value":"49.950"},</span><span style="font-family:arial,sans-serif;font-size:13px">{"name":"ErrNoFirst","unit":""</span><span style="font-family:arial,sans-serif;font-size:13px">,"meta":"ErrNoFirst","value":"</span><span style="font-family:arial,sans-serif;font-size:13px">0"},{" name":"P-WModFailStt","unit":"</span><span style="font-family:arial,sans-serif;font-size:13px">","meta":"P-WModFailStt","</span><span style="font-family:arial,sans-serif;font-size:13px">value":"Off"},{"name":"P-</span><span style="font-family:arial,sans-serif;font-size:13px">WModStt","unit":"","meta":"P-</span><span style="font-family:arial,sans-serif;font-size:13px">WModStt","value":"Off"},{"</span><span style="font-family:arial,sans-serif;font-size:13px">name":"Dsc","unit":"","meta":"</span><span style="font-family:arial,sans-serif;font-size:13px">Dsc","value":"---"},{"name":"</span><span style="font-family:arial,sans-serif;font-size:13px">Firmware-9","unit":"","meta":"</span><span style="font-family:arial,sans-serif;font-size:13px">Firmware-9","value":" "},{"name":"Cntry","unit":"","</span><span style="font-family:arial,sans-serif;font-size:13px">meta":"Cntry","value":"DE1"} ,{"name":"Type","unit":"","</span><span style="font-family:arial,sans-serif;font-size:13px">meta":"Type","value":"SCG"},{"</span><span style="font-family:arial,sans-serif;font-size:13px">name":"Mode","unit":"","meta":</span><span style="font-family:arial,sans-serif;font-size:13px">"Mode","value":"Operation"},{"</span><span style="font-family:arial,sans-serif;font-size:13px">name":"Error","unit":"","meta"</span><span style="font-family:arial,sans-serif;font-size:13px">:"Error","value":"---"}]}]},"</span><span style="font-family:arial,sans-serif;font-size:13px">version":"1.0" </span><br>
</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div></div><div><font face="arial, sans-serif">Quiero parsearlo para poder almacenar en unas variables que tengo los values que aparecen en el JSON. De esta forma:</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"> Con la solucion con expresiones regulares en cada iteracion tengo lo siguiente: </font></div><div><span style="font-family:arial,sans-serif;font-size:13px"> d_value = [name,(valor del name),unit,(valor del unit),meta,(valor del meta),value,(valor del value)]</span><font face="arial, sans-serif"><br>
</font></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">En esa iteracion hago lo siguiente:</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">if d_value[1] == "PF":</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"> mi_variable_PF = d_value[7]</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">if d_value[1] == "Fac":</span></div><div>
<span style="font-family:arial,sans-serif;font-size:13px"> mi_variable_Fac = d_value[7]</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">.....</span></div><div><br></div><div><font face="arial, sans-serif">No necesito todos los values, solo los que corresponden a unos determinados name.</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Con la solucion con expresiones regulares tengo el siguiente bug:</font></div><div><font face="arial, sans-serif">Alguna veces en el json aparece "unit":"". Es decir, la clave key no tiene valor, por lo que no consigo </font></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 22:40, Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Si quieres pasame un string de ejemplo que esté completo y dime que hacer con los values y te escribo la solución.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 17:38, Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Lo que hago es tomar el string que tienes y guardarlo en un archivo como texto plano pero luego lo cargo utilizando json con lo cual obtengo un diccionario python. Para obtener las keys y values del diccionario solo tienes que hacer diccionario.keys() y diccionario.values() o puedes hacer también diccionario.items() lo cual te da la pareja key:value.<div>
<br></div><div>En todos los casos obtendrás lista de keys, values o items.</div><div><br></div><div>Ahora bien, el primer obstáculo está salvado, que era pasar el string a un diccionario donde tienes parejas key-value.</div>
<div><br></div><div>El segundo obstaculo es hacer recursividad dentro del diccionario para seguir hacia adentro de la estructura obteniendo los diccionarios internos. No es tan complicado, puedes comenzar con algo como:</div>
<div><br></div><div><div><font color="#990000">for key in diccionario.keys():</font></div><div><font color="#990000"> valor = diccionario[key]</font></div></div><div><font color="#0000ff"> . . . lo que quieras con el key y lo que quieras con value aca importa que tipo de dato es el value, porque por lo que veo tienes listas, diccionarios, string, etc, utiliza type(valor) para operar sobre ellos según su tipo.</font></div>
<div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 17:13, Miguel Angel Rodriguez <span dir="ltr"><<a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">No entiendo que haces con archivo...<div><br></div><div>Nunca he programado con json en python.</div><div>
<br></div><div>¿Como seria a partir de lo que indicas el parseo de los datos? Es decir, ¿Como seria el bucle que me iria dando el name y el value?</div>
<div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-03 22:08 GMT+02:00 Flavio Danesse <span dir="ltr"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></span>:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Voto por lo correcto que sería así:<div><br></div><div><div><font color="#990000">import os</font></div>
<div><font color="#990000">import json</font></div><div><font color="#990000">import codecs</font></div>
<div><font color="#990000"><br></font></div><div><font color="#990000">text = '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", </font><font color="#0000ff">etc . . .</font></div>
<div><font color="#990000"><br></font></div><div><font color="#990000">path = "/tmp/x.json"</font></div><div><font color="#990000"><br></font></div><div><font color="#990000">archivo = open(path, "w")</font></div>
<div><font color="#990000">archivo.write(text)</font></div><div><font color="#990000">archivo.close()</font></div><div><font color="#990000"><br></font></div><div><font color="#990000">archivo = codecs.open(path, "r", "utf-8")</font></div>
<div><font color="#990000">diccionario = json.JSONDecoder("utf-8").decode(archivo.read())</font></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 8:03, <span dir="ltr"><<a href="mailto:gustavo@nodo50.org" target="_blank">gustavo@nodo50.org</a>></span> escribió:<div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">ejecutando esto:<br>
<br>
#!/usr/bin/python3<br>
import re<br>
value_str =<br>
'{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},{"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kVAr","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":""},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"}<br>
,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"'<br>
<br>
for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.]+\"",value_str):<br>
for channel_str1 in re.findall("\"value\":\"[A-Za-z0-9\-.]+\"",value_str):<br>
print ( channel_str + ";" + channel_str1 )<br>
<br>
me da esto:<br>
<br>
"name":"Cntry";"value":"335.2"<br>
"name":"Cntry";"value":"-1.0"<br>
"name":"Cntry";"value":"335.1"<br>
"name":"Cntry";"value":"49.950"<br>
"name":"Cntry";"value":"0"<br>
"name":"Cntry";"value":"Off"<br>
"name":"Cntry";"value":"Off"<br>
"name":"Cntry";"value":"---"<br>
"name":"Cntry";"value":"DE1"<br>
"name":"Cntry";"value":"SCG"<br>
"name":"Cntry";"value":"Operation"<br>
"name":"Cntry";"value":"---"<br>
"name":"Type";"value":"1.000"<br>
"name":"Type";"value":"935"<br>
"name":"Type";"value":"217.5"<br>
"name":"Type";"value":"513.8"<br>
"name":"Type";"value":"335.2"<br>
"name":"Type";"value":"-1.0"<br>
"name":"Type";"value":"335.1"<br>
"name":"Type";"value":"49.950"<br>
<br>
<br>
te vale?<br>
<div><div><br>
<br>
<br>
<br>
<br>
> Hola a todos,<br>
><br>
> Estoy intentando parsear con Python una gran cadena que recibo en un<br>
> software de comunicaciones que estoy programando.<br>
><br>
> La cadena que yo recibo es la siguiente:<br>
><br>
> value_str =<br>
> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name":"P-WSpt","unit":"kW","meta":"P-WSpt","value":"935"},<br>
><br>
> {"name":"Vac","unit":"V","meta":"Vac","value":"217.5"},{"name":"Iac","unit":"A","meta":"Iac","value":"513.8"},{"name":"Pac","unit":"kW","meta":"Pac","value":"335.2"},{"name":"Qac","unit":"kV<br>
><br>
> Ar","meta":"Qac","value":"-1.0"},{"name":"Sac","unit":"kVA","meta":"Sac","value":"335.1"},{"name":"Fac","unit":"Hz","meta":"Fac","value":"49.950"},{"name":"ErrNoFirst","unit":"","meta":"ErrNoFirst","value":"0"},{"<br>
><br>
> name":"P-WModFailStt","unit":"","meta":"P-WModFailStt","value":"Off"},{"name":"P-WModStt","unit":"","meta":"P-WModStt","value":"Off"},{"name":"Dsc","unit":"","meta":"Dsc","value":"---"},{"name":"Firmware-9","unit":"","meta":"Firmware-9","value":"<br>
> "},{"name":"Cntry","unit":"","meta":"Cntry","value":"DE1"}<br>
> ,{"name":"Type","unit":"","meta":"Type","value":"SCG"},{"name":"Mode","unit":"","meta":"Mode","value":"Operation"},{"name":"Error","unit":"","meta":"Error","value":"---"}]}]},"version":"1.0"<br>
><br>
><br>
> Yo solo quiero quedarme con los name y value existente.<br>
><br>
> LA forma en la que lo estoy intentando es la siguiente:<br>
><br>
> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.<br>
> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str):<br>
> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str)<br>
><br>
> Pero de esta forma no entra en el for.<br>
><br>
> ¿Alguien me puede ayudar?<br>
><br>
> Gracias y un saludo<br>
><br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> Miguel Ángel Rodríguez de Alba<br>
> 678304435<br>
> <a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a><br>
</div></div><div><div>> _______________________________________________<br>
> Python-es mailing list<br>
> <a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
> FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
><br>
<br>
<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div>Miguel Ángel Rodríguez de Alba</div>
<div>678304435</div>
<div><a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a></div>
</div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div></div></div><br></div>
</blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div>Miguel Ángel Rodríguez de Alba</div>
<div>678304435</div>
<div><a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a></div>
</div></div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><div><br></div>-- <br><div>Miguel Ángel Rodríguez de Alba</div>
<div>678304435</div>
<div><a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a></div>
</div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>