Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write python dictionary to CSV columns: keys to first column, values to second

I'm looking for a way to write a python dictionary to columns (keys in first column and values in second). This link shows how to write a list to a column, but am wondering if there is a way to do this without converting my dictionary to two zipped lists.

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)

desired result:

1;a
2;b
3;c
like image 581
user25976 Avatar asked Jul 15 '14 23:07

user25976


Video Answer


2 Answers

You could simply do in python 2.X :

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

For python 3.X, change the for loop line to for row in myDict.items():

like image 76
zsquare Avatar answered Oct 12 '22 23:10

zsquare


A slightly shorter version is to do:

rows = myDict.iteritems()

(Or .items() for Python 3.)

To get the ; separator, pass delimiter to csv.reader or csv.writer. In this case:

writer = csv.writer(f, delimiter=';')
like image 36
Anorov Avatar answered Oct 12 '22 23:10

Anorov