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