Bir .csv dosyasına iç içe bir sözlük yazmayı deniyorum. İşte basit bir örnek olduğu:Python: İç içe Sözlükü CSV'ye Yazma
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]])
Bu iki sütun ile bana bir tablo alır: İlk orgname
içerir; ikincisi [2, 1, 1] (veya alt sözlükten karşılık gelen değerler) içerir. Dört sütun içeren bir tablo istiyorum: biri orgname
için ve sonra karşılık gelen liste elemanları için üç.
Dicts'ın siparişi yok, bu yüzden hemen dertte derttesiniz –
@PadraicCunningham kabul etti. Ancak, onun anahtarları bir sözlüksel düzeni takip ediyor gibi görünüyor. Yani, o hala dw.keys() sıralama ve daha sonra üzerinde yineleme yaparak işe yarayabilir. –