<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">El 3 de junio de 2014, 11:56, Miguel Angel Rodriguez <span dir="ltr"><<a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy complicado?<div>
<br></div></div></blockquote><div>No es que sea complicado, sólo buscamos cómo trabajar menos, como los buenos informáticos.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr"><div></div><div>¿No creeis que casi está con la expresion regular que indiqué en mi primer correo?</div><div><br></div></div></blockquote><div><br></div><div>Lo que veo de la expresión es que buscas "name" seguido inmediatamente de "value", cosa que no ocurre.<br>
<br></div><div>Prueba a separar los campos con algo así: '''"name":"(?P<name>[\w\d\-. ]+)".*?,"value":"(?P<value>[\w\d\-. ]*)"'''</div><div><br></div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">El 3 de junio de 2014, 11:52, Guillermo Vaya <span dir="ltr"><<a href="mailto:nadaird@gmail.com" target="_blank">nadaird@gmail.com</a>></span> escribió:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna de las librerias de json para que lo parsee?<br>
<br>A partir de ahi solo tienes que recorrerlo como una estructura de datos y coger aquello que quieras sin los lios inherentes a hacer tus propias expresiones regulares.<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez <span dir="ltr"><<a href="mailto:marodal@gmail.com" target="_blank">marodal@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div><div dir="ltr"><br clear="all"><div>Hola a todos,</div><div><br></div><div>Estoy intentando parsear con Python una gran cadena que recibo en un software de comunicaciones que estoy programando.</div>
<div><br></div><div>La cadena que yo recibo es la siguiente:</div>
<div><br></div><div>value_str = {"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>Yo solo quiero quedarme con los name y value existente.</div><div><br></div><div>LA forma en la que lo estoy intentando es la siguiente:</div><div><br></div><div><div>for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-. ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str):</div>
<div> d_value = re.findall("[A-Za-z0-9.\-]+",channel_str)</div></div><div><br></div><div>Pero de esta forma no entra en el for.</div><div><br></div><div>¿Alguien me puede ayudar?</div><div><br></div>
<div>
Gracias y un saludo</div><span><font color="#888888"><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><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>
</font></span></div>
<br></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></div></blockquote></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 class="h5"><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">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><br clear="all"><br>-- <br>Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": <a href="http://ch3m4.org/blog" target="_blank">http://ch3m4.org/blog</a><br>Buscador Python Hispano: <a href="http://ch3m4.org/python-es" target="_blank">http://ch3m4.org/python-es</a>
</div></div>