2017-08-01 17 views
0

辞書を使用してCSVファイルを作成しようとしています。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

[csvファイルにPython辞書を書き込むにはどうすればいいですか?](https://stackoverflow.com/questions/10373247/how-do-i-write-a-python-dictionary-to-a-csv -file) –

+0

ありがとうアラン。 @Mosesの答えは私を助けました。 – Raj

答えて

3

あなたは、古い辞書からキーと値がでフィールド名に対する値として配置されるようにdictsのリストにあなたのデータを再フォーマットする必要があります新しいdicts:

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

ありがとう@モーゼス – 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]))