2017-08-01 62 views
0

嘗試使用字典填充CSV文件。Dictionary to CSV

這裏是我想要的代碼:

import csv 

my_dict = {'App 1': 'App id1', 'App 2': 'App id2', 'App 3': 'App id3'} 
with open('test.csv', 'w') as f: 
    fieldnames = ['Application Name', 'Application ID'] 
    writer = csv.DictWriter(f, fieldnames=fieldnames) 
    writer.writeheader() 
    writer.writerows(my_dict) 

有了這個代碼,它只是創造與頭一個CSV文件。

我在尋找一個類似的輸出:

enter image description here

+2

不錯的嘗試!保持!有沒有需要回答的問題? –

+0

[我如何將Python字典寫入csv文件?](https://stackoverflow.com/questions/10373247/how-do-i-write-a-python-dictionary-to-a-csv -file) –

+0

謝謝Alan。 @Moses的回答給了我很多幫助。 – Raj

回答

3

您需要將數據重新格式化爲類型的字典列表,例如從舊字典鍵和值放置作爲值對字段名中新類型的字典:

my_dict = {'App 1': 'App id1', 'App 2': 'App id2', 'App 3': 'App id3'} 
with open('test.csv', 'w') as f: 
    fieldnames = ['Application Name', 'Application ID'] 
    writer = csv.DictWriter(f, fieldnames=fieldnames) 
    writer.writeheader() 
    data = [dict(zip(fieldnames, [k, v])) for k, v in my_dict.items()] 
    writer.writerows(data) 
+0

謝謝!這幾乎解決了我的問題。但是,我在csv文件中的字典中的每個項目之後都會出現空行。有沒有解決方法? – Raj

+1

@Raj很常見的問題,請看:https://stackoverflow.com/questions/3348460/csv-file-written-with-python-has-blank-lines-between-each-row –

+0

非常感謝@Moses – Raj

0

你也可以做到這一點沒有代碼的進口和更少的行:

my_dict = {'App 1': 'App id1', 'App 2': 'App id2', 'App 3': 'App id3'} 
with open('test.csv', 'w') as f: 
    f.write('Application Name, Application ID\n') 
    for key in my_dict.keys(): 
     f.write("%s,%s\n"%(key,my_dict[key]))