2016-03-28 15 views
0

Ich habe eine Liste der Wörterbücher, die ich umwandeln müssen:Gebäude Wörterbuch im Wörterbuch

my_dictionary = {} 
my_array = [{'first': 'this'}, {'second': 'this'}] 

Was ich will, ist my_dictionary zu drücken und dann haben Unter Wörterbücher, die auf die Elemente in my_array gleich sind, wie so:

my_dictionary = {'red' : {'first': 'this', 'second' : 'this'}} 

Was ich hatte, in der Theorie war:

for i in my_array: 
    my_dictionary['red'] = dict(i.items()) 

, aber ich erhalte eine Fehlermeldung aus:

TypeError: 'dict' object is not callable

ich obwohl ich zu realisieren, ist es wahrscheinlich, weil nach der ersten Iteration, ich bin nicht ein Wörterbuch erstellen, Ich füge einfach darauf. Gibt es eine Möglichkeit für mich, den Schlüssel von jedem Elemente in my_array zu ziehen, so dass ich angeben kann es mehr wie:

for i in my_array: 
    my_dictionary['red'][key_from_item_in_my_array] = my_array[key_from_item_in_my_array] 

aber ich bin nicht sicher, wie das zu tun.

+4

Ich wette, Sie eine Variable haben irgendwo in deinem Code 'dict' genannt. – ForceBru

+0

Was ist Array? Ist es my_array? – Peaceful

+0

Ahh, ja, ich habe das tatsächlich nochmal gemacht. und mit dem konstruktorischen Ansatz benutze ich nur die letzten Iterationsdaten. Also überschreibt es es für jede Iteration. Wie kann ich die Schlüsselwertpaare zum Wörterbuch hinzufügen? – Jacob

Antwort

3

Scheint so, als ob Sie das Dictionaries-Array in ein einzelnes Dictionary zusammenführen und dieses Dictionary in ein anderes Dictionary einfügen möchten. Die Zusammenführung ist einfach:

new_dict = {} 
for i in my_array: 
    new_dict.update(i) 

Jetzt können Sie Ihre fusionierten Wörterbuch setzen in die zweite:

my_dictionary = {} 
my_dictionary["red"] = new_dict 

Dies erzeugt:

my_dictionary = {'red': {'first': 'this', 'second': 'this'}}