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":"P
Hola,
Supongo que no quieres utilizar json [1], no?
[1] https://docs.python.org/2/library/json.html
___
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
Y aunque sea menos optimo, usar JSON directamente y ya tienes la estructura
de datos en Python como un hash para poder iterar con un "for".
Saludos.
2014-06-03 11:22 GMT+02:00 Miguel Angel Rodriguez :
>
> Hola a todos,
>
> Estoy intentando parsear con Python una gran cadena que recibo en un
> s
Lo que quiero es parsear esa cadena que indiqué. No uso Json, es una
cadena. Quiero quedarme con un array en el cada elemento del array contenga
[name,valor del name, value, valor del value]
Por favor, ¿puedes revisar la expresion regular que puse en mi primer
correo para ver si es correcta?
Much
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
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 enc
En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy
complicado?
¿No creeis que casi está con la expresion regular que indiqué en mi primer
correo?
El 3 de junio de 2014, 11:52, Guillermo Vaya escribió:
> Si es un json (como indica el ejemplo que pones) ¿por qué no usas algu
Hola,
Puedes hacer primero un split por la cadena "},{" eso te devolverá una
lista iterable a la que puede, linea por linea, ir buscando la expresión \
"name\":"([\z\d]+)\".*\"value\"\:\"([\z\d]+)".
Quizas debas hacer algunos ajustes, pero creo que te funcionara. Por otra
parte, quien te manda lo
El 3 de junio de 2014, 11:56, Miguel Angel Rodriguez
escribió:
> En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy
> complicado?
>
> No es que sea complicado, sólo buscamos cómo trabajar menos, como los
buenos informáticos.
> ¿No creeis que casi está con la expresion regular
- Mensaje original -
De: "Manuel A. Estevez Fernandez"
Para: "La lista de python en castellano"
Enviados: Lunes, 2 de Junio 2014 17:50:02
Asunto: Re: [Python-es] Analizar cadena y extraer valores
Muchas gracias por tu aportación Luis, si me pudieras compartir tu código te lo
agradecerí
Muchisimas gracias por vuestras aportaciones.
Al final lo he solucionado un poco a la fuerza bruta.
for channel_str in re.findall("\"name\":\"[A-Za-z0-9\-.
]+\",\"unit\":\"[A-Za-z0-9\-. ]+\",\"meta\":\"[A-Za-z0-9\-.
]+\",\"value\":\"[A-Za-z0-9\-. ]*\"",value_str):
d_value = r
Muchas gracias, los voy a revisar.
Saludos.
by:
ISC. Manuel Alejandro Estévez Fernández
El 3 de junio de 2014, 5:50, Luis Iglesias
escribió:
>
> - Mensaje original -
> De: "Manuel A. Estevez Fernandez"
> Para: "La lista de python en castellano"
> Enviados: Lunes, 2 de Junio 2014 1
pdfminner
El día 3 de junio de 2014, 12:07, Manuel A. Estevez Fernandez
escribió:
> Muchas gracias, los voy a revisar.
>
> Saludos.
>
> by:
>
> ISC. Manuel Alejandro Estévez Fernández
>
>
>
> El 3 de junio de 2014, 5:50, Luis Iglesias
> escribió:
>>
>>
>> - Mensaje original -
>> De: "Man
ejecutando esto:
#!/usr/bin/python3
import re
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":"21
Hola,
¿Es siempre un json lo que recibes? Lo digo porque quizás puedes intentar
decodificarlo como json ¿no? https://docs.python.org/2/library/json.html
He comprobado la sintaxis de la cadena que pasas y es un formato válido de
json:
{
"format":"JSON",
"result":{
"devices":[
Voto por lo correcto que sería así:
import os
import json
import codecs
text = '{"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320", etc
. . .
path = "/tmp/x.json"
archivo = open(path, "w")
archivo.write(text)
archivo.close()
archivo = codecs.open(path, "r", "utf-8")
diccionario
No entiendo que haces con archivo...
Nunca he programado con json en python.
¿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?
2014-06-03 22:08 GMT+02:00 Flavio Danesse :
> Voto por lo correcto que sería así:
>
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 d
Si quieres pasame un string de ejemplo que esté completo y dime que hacer
con los values y te escribo la solución.
El 3 de junio de 2014, 17:38, Flavio Danesse escribió:
> Lo que hago es tomar el string que tienes y guardarlo en un archivo como
> texto plano pero luego lo cargo utilizando json
Este es un ejemplo de lo que recibo:
{"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
Este es un ejemplo de lo que recibo:
{"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",
ok, dame unos minutos, me pongo en esto y te aviso.
El 3 de junio de 2014, 17:55, Miguel Angel Rodriguez
escribió:
> Este es un ejemplo de lo que recibo:
>
> {"format":"JSON","result":{"devices":[{"key":"SCGDE1BA:180340320","channels":[{"name":"PF","unit":"","meta":"PF","value":"1.000"},{"name"
Hola,
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:
import json
# remover la parte sobrante
json_string = json_string = string.replace(',"version":"1.0" ', '}')
data = json.loads(json_string)
# si la cadena
Solucionado, dejo adjunto.
El 3 de junio de 2014, 19:56, Jhonatan Sneider Salguero Villa <
[email protected]> escribió:
> Hola,
>
> 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:
>
> import json
>
> # remove
La noticia: https://mail.python.org/pipermail/python-list/2014-June/672994.html
Probablemente la idea de aplicaciones Python en dispositivos Android
deje de ser tan inviable ahora :)
Saludos
--
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.
2014-06-03 4:56 GMT-05:00 Miguel Angel Rodriguez :
> En principio necesito hacerlo con expresiones regulares. ¿Lo veis muy
> complicado?
Se puede saber por qué?
2014-06-03 15:13 GMT-05:00 Miguel Angel Rodriguez :
>
> Nunca he programado con json en python.
No hay mejor razón para comenzar ahora
26 matches
Mail list logo