Próbuję zapisać zagnieżdżony słownik do pliku .csv. Oto prosty przykład:Python: Pisanie zagnieżdżonego słownika do CSV
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]])
To dostaje mi stolik z dwoma kolumnami: pierwsza zawiera orgname
; drugi zawiera [2, 1, 1] (lub odpowiednie wartości z pod-słownika). Chciałbym tabelę z czterema kolumnami: jedną dla orgname
, a następnie trzy dla odpowiednich elementów listy.
Dicts nie mają porządku, więc masz kłopoty od razu –
@PadraicCunningham zgodził. Jednak jego klucze wydają się być zgodne z porządkiem leksykograficznym. Tak więc mógł nadal działać, sortując dw.keys(), a następnie iterując nad tym. –