Auf ein verschachteltes dictionary zugreifen

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
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo,

Ich möchte gerne auf ein verschachteltes Dictionary zugreifen.
z.B

Code: Alles auswählen

d={"Pos": {"Bearbeitung": {"Programm": {"124":"0", "125":"1", "126":"2", "127":"3"}}}}
Zur Verfügung steht mir eine Liste der Schlüssel:
z.B.

Code: Alles auswählen

schluessel=["Pos", "Bearbeitung", "Programm"]
Ich kann nun natürlich so darauf zugreifen:

Code: Alles auswählen

d[schluessel[0]][schluessel[1]][schluessel[2]]
Aber die Menge der Schlüssel variiert in meinem Programm. So müsste ich für jede Schlüsselanzahl einen eigenen Indexstring schreiben mit dem ich dann auf mein ditionary zugreifen kann.
Hat jemand eine Idee das besser zu lösen? Könnte man diesen Indexstring auch über eine Schleife konstruieren?
Ich habe mich schon daran versucht, bin aber noch auf keine bessere Möglichkeit gekommen. Vielleicht hat von euch jemand eine Idee? :D
Gruß, Harry
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi HarryH,

Code: Alles auswählen

def get_from_path(d, path):
    result = d
    for key in path:
        result = result[key]
    return result

d={"Pos": {"Bearbeitung": {"Programm": {"124":"0", "125":"1", "126":"2", "127":"3"}}}}

schluessel=["Pos", "Bearbeitung", "Programm"]

wert = get_from_path(d, schluessel)
print wert
Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo Dookie,

Super! Das ist genau das was ich brauche und ist eigentlich ganz einfach! :oops:
Nochmals vielen Dank, auch weil es so schnell ging!
Gruß, Harry
Antworten