[pyar] Parser almacena cadenas en diccionario

Hernan Grecco hernan.grecco en gmail.com
Vie Nov 9 10:43:49 ART 2012


Aca va el ejemplo con stringparser, obteniendo el resultado en un (ordered)
dict o una lista. Fijate que sigue PEP3101 (el mismo que usas para generar
un string), pero lo usa para parsear.

Hernan


example.py
---------------

import stringparser

t = "Feb 20 23:27:11 ubuntu kernel: [1988916.899165] iptables: IN=eth0 OUT=
MAC=00:00:00:00:00:00:00:" \
    "00:00:00:00:00:00:00 SRC=192.168.0.3 DST=192.168.0.1 LEN=60 TOS=0x10
PREC=0x00 TTL=64 ID=30541 " \
    "DF PROTO=TCP SPT=60148 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0"

print('as dictionary:')
parser = stringparser.Parser('{_:s} IN={IN:s} {_:s} MAC={MAC:s} {_:s}')
result = parser(t)
print(result)

print('as list:')
parser = stringparser.Parser('{_:s} IN={:s} {_:s} MAC={:s} {_:s}')
result = parser(t)
print(result)


$ python example.py
as dictionary:
OrderedDict([('IN', 'eth0'), ('MAC',
'00:00:00:00:00:00:00:00:00:00:00:00:00:00')])
as list:
['eth0', '00:00:00:00:00:00:00:00:00:00:00:00:00:00']





2012/11/9 Jairo Trad <frodobolsonxx en gmail.com>

>
> Si supones que el orden de los parámetros es el mismo siempre, podes hacer
> algo así:
>
>
> *cadena = "Feb 20 23:27:11 ubuntu kernel: [1988916.899165] iptables: IN=eth0
> OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=192.168.0.3 DST=192.168.0.1
> LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=30541 DF PROTO=TCP SPT=60148 DPT=22
> WINDOW=5840 RES=0x00 SYN URGP=0"
>
> netinfo = {}
>
> netinfo["MAC"] = cadena[cadena.find('MAC')+3:cadena.find('SRC')-1]
> netinfo["IN"] = cadena[cadena.find('IN')+3:cadena.find('OUT')-1]
> *
>
> De todos modos esta es la solución mas rustica, deberías usar expresiones
> regulares, el simulador que te pasaron antes es fundamental.
>
> Saludos, Jairo
>
> --
> Jairo Trad
> Ing. en Computación - FCEFyN - UNC
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20121109/db502305/attachment.html>


More information about the pyar mailing list