2016-10-23 3 views
-1

Ich habe ein paar Funktionen definiert, um einige Wörterbücher einzurichten und Dinge zu organisieren. Was ich jetzt versuche, ist ein verschachteltes Wörterbuch als Funktionsparameter für eine andere Funktion zu verwenden.Zugriff auf Schlüssel eines Wörterbuchs innerhalb des Wörterbuchs innerhalb des Wörterbuchs

K so habe ich diese eingegeben Format:

list = {'123': {'Name': 'foo', 'Responses': {'Q4': 'a', 'Q1': 'a', 'Q2': 'b', 'Q3': 'c'}, 'ID': '123'}, '234': {'Name': 'bar', 'Responses': {'Q4': 'b', 'Q1': 'a', 'Q2': 'b', 'Q3': 'c'}, 'ID': '234'}, '345': {'Name': 'xyzzy', 'Responses': {'Q4': 'b', 'Q1': 'a', 'Q2': 'a', 'Q3': 'c'}, 'ID': '345'}} 

ich die 'Antworten' Schlüssel zugreifen müssen, so dass die Funktion des Q1, Q2 verwenden können, etc Tasten und auf eine andere dictionart zu vergleichen. Und ich muss dies für jede 123, 234, 345 Tasten tun. Dann nicht so wichtig, ich muss einen Schlüssel für die Werte zuordnen, die Funktion gibt und aktualisieren Sie eine Liste, aber ich kann das herausfinden, sobald ich diese Funktion ausführen.

Ich habe versucht, mit list.get ('Antworten') als Parameter, aber es gibt keine zurück, also bin ich nicht wirklich sicher, wo ich von hier aus gehen soll.

Antwort

0

Der Parameter .get() sucht nach Schlüsseln auf oberster Ebene. Was Sie wirklich wollen wahrscheinlich ist über die Unterebene Wörterbücher zur Liste:

for key, sub_dict in toplevel_dict.items(): 
    responses = sub_dict['Responses'] 
    # do something with responses here; responses is a dict 
0

Sie tun können wie folgt eine Liste Verständnis mit:

l = [dic['Responses'] for _, dic in list.items()] 
# You get a list of all your dictionaries 
0

Sie benötigen ein mit iteritems for-Schleife verwenden, um zieh die Info aus.

for key, value in list.iteritems(): 
    print value['Responses'] 
Verwandte Themen