Seite 1 von 1

Suchen im verschachtelten Dictionary

Verfasst: Dienstag 18. November 2014, 23:15
von enercon
Hallo,
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
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:

Code: Alles auswählen

{
'standortA': {'server1': {'ip_address': 'a.a.a.a', 'port': 4096 }},
'standortB': {'server3': {'ip_address': 'a.a.b.a', 'port': 4096 }}
}
Vielen Dank für Hinweise

enercon

Re: Suchen im verschachtelten Dictionary

Verfasst: Dienstag 18. November 2014, 23:27
von BlackJack
@enercon: Das hängt ein wenig von den Umständen ab und wie generisch das gelöst werden muss. Wenn die Strukturen bekannt sind, würde ich auch Code speziell für diese Strukturen schreiben.

Re: Suchen im verschachtelten Dictionary

Verfasst: Dienstag 18. November 2014, 23:35
von enercon
BlackJack hat geschrieben:@enercon: Das hängt ein wenig von den Umständen ab und wie generisch das gelöst werden muss. Wenn die Strukturen bekannt sind, würde ich auch Code speziell für diese Strukturen schreiben.
Hallo @BlackJack, ich fürchte die Strukturen sind sehr fließend, ich kann also nicht genau sagen, ob die gesuchte Info in der 2. 3. oder 4. Ebene zu finden ist. Ich weiß nur, daß sie vorhanden ist.

enercon

Re: Suchen im verschachtelten Dictionary

Verfasst: Mittwoch 19. November 2014, 00:16
von BlackJack
@enercon: Dann wird es Zeit sich mit dem lustigen Konzept „Rekursion” zu beschäftigen. :-)