string nach dictionary

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Flavio

hilfe!!
ich habe einen string wie folgt:
'{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}'
sieht zwar aus wie ein dictionary, ist aber (leider) keiner
wie kann ich ihn in einen dictionary umwandeln???
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Ganz einfach mit eval zum Interpreter schicken und schauen, was der davon meint :wink:

Code: Alles auswählen

d=eval("{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}")
Milan
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

oder mit regular expressions, falls Du kein eval verwenden willst.

Code: Alles auswählen

import re

s = "{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}"

d = dict([(y[0][0],[z.strip().strip("'") for z in y[0][1].split(",")]) for y in [re.findall("'(.*?)'\s*:\s*\[(.*?)\]", x) for x in re.findall("('.*?':\s*\[.*?\])",s)]])
Gruß

Dookie
Sneaker
User
Beiträge: 52
Registriert: Montag 19. Januar 2004, 22:19
Wohnort: Vor meinem Computer
Kontaktdaten:

ich würde mal auf das eval tippen da hier ja einfach nur der code im interpreter interpretiert werden muss....
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Was spricht gegen testen, einfach in einer schleiffe 1000 mal das teil durchlaufen lassen und schaun was schneller ist.
Gibt ja sogar ein Pythonmodul für solche Tests.


Gruß

Dookie
Antworten