Suchen im verschachtelten Dictionary
Verfasst: Dienstag 18. November 2014, 23:15
Hallo,
für einfache dictionaries kann ich mittels iteritems nach meinen Werten suchen, doch wie mach ich das bei mehrfach geschachtelten dictionaries?
Wie finde ich Einträge mit einem Wert x in diesem Dictionary?
Geht das nur über mehrere Schleifen, oder einfacher?
Und noch eine zweite Frage dazu. Wie komme ich an den kompletten Datensatz, wenn ich etwas gefunden habe? also nicht nur "port 4096" sondern idealerweise wieder ein dictionary:
Vielen Dank für Hinweise
enercon
für einfache dictionaries kann ich mittels iteritems nach meinen Werten suchen, doch wie mach ich das bei mehrfach geschachtelten dictionaries?
Code: Alles auswählen
#stark reduziertes Beispiel:
server = {'standortA': {
'server1': {'ip_address': 'a.a.a.a', 'port': 4096 },
'server2': {'ip_address': 'a.a.a.b', 'port': 1024 }
},
'standortB': {
'server3': {'ip_address': 'a.a.b.a', 'port': 4096 },
'server4': {'ip_address': 'a.a.b.b', 'port': 1024 }
},
}
#Suche nach Servern die zB den wert 4096 haben
for key, value in server.iteritems():
if value == 4096:
print key, value #liefert leider nichts
for key, value in server['standortA']['server1'].iteritems():
if value == 4096:
print key,value
#liefert:
port 4096
Geht das nur über mehrere Schleifen, oder einfacher?
Und noch eine zweite Frage dazu. Wie komme ich an den kompletten Datensatz, wenn ich etwas gefunden habe? also nicht nur "port 4096" sondern idealerweise wieder ein dictionary:
Code: Alles auswählen
{
'standortA': {'server1': {'ip_address': 'a.a.a.a', 'port': 4096 }},
'standortB': {'server3': {'ip_address': 'a.a.b.a', 'port': 4096 }}
}
enercon