[Python] RE e dizionario
Giovanni Porcari
giovanni.porcari a softwell.it
Mer 21 Dic 2016 13:46:10 CET
> Il giorno 21 dic 2016, alle ore 13:02, Marco Beri <marcoberi a gmail.com> ha scritto:
>
> 2016-12-21 13:00 GMT+01:00 Marcello <marcello a linuxvil.it>:
> La stringa che gli do in pasto contiene varie configurazioni suddivise in 2 o 3 righe e a volte mi mette dopo un '=' una '\' esempio 'password=\' e va a capo con la password_letta.
> Quando il codice incontra questo problema il valore assegnato al dizionario risulta errato 'password': '\\\r\n'.
> Si può risolvere.
>
> Marcello,
> se l'ultima frase qui sopra è una affermazione, bravo, buon lavoro.
>
> Se invece è una domanda, io sostituirei tutti gli "=\n" con "=" nella variabile.
Che belli gli oneliner :)
>>> [dict( [(k,v) for k,v in [hostline.split('=') for hostline in host.split(' ') if '=' in hostline] if k in ('name', 'remote-address', 'password')]) for host in hosts.replace('=\n','=').split('\n')]
[{'name': 'nome1', 'password': 'passwd1', 'remote-address': '10.172.33.2'},
{'name': 'nome2', 'password': 'passwd2', 'remote-address': '10.172.33.2'},
{'name': 'nome3', 'password': 'passwd3', 'remote-address': '10.172.34.38'},
{'name': 'nome4', 'password': 'passwd4', 'remote-address': '10.172.34.46'},
{'name': 'nome5', 'password': 'passwd5', 'remote-address': '10.172.34.50'},
{'name': 'nome6', 'password': 'passwd6', 'remote-address': '10.172.34.54'}]
:D
G
Maggiori informazioni sulla lista
Python