Ich versuche, ein verschachteltes Wörterbuch in eine .csv-Datei zu schreiben. Hier ist ein einfaches Beispiel:Python: Verschachtelte Wörterbuch in CSV schreiben
import csv
import itertools
fields = [ 'org', '2015', '2014', '2013' ]
dw = { 'orgname1': { '2015' : 2, '2014' : 1, '2013' : 1 },
'orgname2': { '2015' : 1, '2014' : 2, '2013' : 3 },
'orgname3': { '2015' : 1, '2014' : 3, '2013' : 1 }
}
with open("test_output.csv", "wb") as f:
w = csv.writer(f)
years = dw.values()[0].keys()
for key in dw.keys():
w.writerow([key, [dw[key][year] for year in years]])
Das wird mir eine Tabelle mit zwei Spalten: Die erste enthält orgname
; die zweite enthält [2, 1, 1] (oder die entsprechenden Werte aus dem Unterwörterbuch). Ich möchte eine Tabelle mit vier Spalten: eine für orgname
und dann drei für die entsprechenden Listenelemente.
dicts haben keine Bestellung, so dass Sie sofort in Schwierigkeiten sind –
@PadraicCunningham zugestimmt. Seine Schlüssel scheinen jedoch einer lexographischen Reihenfolge zu folgen. Also, er könnte es immer noch schaffen, indem er dw.keys() sortiert und dann darüber iteriert. –