2014-07-15 18 views
5

Sütunlara bir python sözlüğü yazmak için bir yol arıyorum (ilk sütundaki anahtarlar ve saniye içindeki değerler). Bu link, bir sütuna bir listenin nasıl yazılacağını gösterir, ancak sözlüğümü iki sıkıştırılmış listeye dönüştürmeden bunu yapmanın bir yolu olup olmadığını merak ediyorum.Python sözlüğünü CSV sütunlarına yazın: ilk sütuna geçiş tuşları, değerler ikinci

myDict = {1:'a', 2:'b', 3:'c'} 

keyList = myDict.keys() 
valueList = myDict.values() 

rows = zip(keyList, valueList) 

with open('test.csv', 'wb') as f: 
    writer = csv.writer(f) 
    for row in rows: 
     writer.writerow(row) 

istenen sonucu:

1;a 
2;b 
3;c 

cevap

5

Sadece yapabileceği:

with open('test.csv', 'wb') as f: 
    writer = csv.writer(f) 
    for row in myDict.iteritems(): 
     writer.writerow(row) 
2

biraz daha kısa versiyonu yapmaktır:

rows = myDict.iteritems() 

(Ya .items() Python 3 için)

; ayırıcı almak için, delimiter'u csv.reader veya'a geçirin. Bu durumda:

writer = csv.writer(f, delimiter=';') 
+0

Bu doğuracak '1, 2, 3 \ na, b, C' değil, istenen çıktı. – zsquare

+0

TEŞEKKÜR EDERİZ! Bana uygun bir cevap bulmak için beni sonsuza kadar sürdü: Çözümü bulmama yardımcı oldu: 'açık ('manifesttest2.csv'," wb ") ile f: \t \t writer = csv.writer (f, delimiter = ', ') \t \t writer.writerow (amazonData) ' –

+0

@MichaelRomrell CSV'nin okuyucu ve yazar nesneleri varsayılan olarak bir sınırlayıcı olarak kullanılmalıdır (CSV virgülle ayrılmış değerler anlamına gelir). Parametreyi geçmeden çalışır mı? – Anorov

İlgili konular