[Python-es] Expresiones regulares

Guillermo Vaya nadaird en gmail.com
Mar Jun 3 11:55:10 CEST 2014


como acabo de recibir el resto de correos que sugieren lo mismo que yo xD
te recomiendo otra utilidad

http://www.pythonregex.com/

con esa podras evaluar los resultados comodamente, ya que nadie excepto tu
puede saber si la expresion es valida al no tener todos los posibles casos
que te puedas encontrar.


2014-06-03 11:52 GMT+02:00 Guillermo Vaya <nadaird en gmail.com>:

> Si es un json (como indica el ejemplo que pones) ¿por qué no usas alguna
> de las librerias de json para que lo parsee?
>
> 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.
>
>
> On Tue, Jun 3, 2014 at 11:22 AM, Miguel Angel Rodriguez <marodal en gmail.com
> > wrote:
>
>>
>> Hola a todos,
>>
>> Estoy intentando parsear con Python una gran cadena que recibo en un
>> software de comunicaciones que estoy programando.
>>
>> La cadena que yo recibo es la siguiente:
>>
>> 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"
>>
>>
>> Yo solo quiero quedarme con los name y value existente.
>>
>> LA forma en la que lo estoy intentando es la siguiente:
>>
>> for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.
>> ]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str):
>>             d_value = re.findall("[A-Za-z0-9.\-]+",channel_str)
>>
>> Pero de esta forma no entra en el for.
>>
>> ¿Alguien me puede ayudar?
>>
>>  Gracias y un saludo
>>
>>
>>
>>
>>
>>
>> --
>> Miguel Ángel Rodríguez de Alba
>> 678304435
>> marodal en gmail.com
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140603/2d8ac4d2/attachment.html>


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