Python辞書をcsvファイルに書き込むにはどうすればいいですか? [重複] 質問する

Python辞書をcsvファイルに書き込むにはどうすればいいですか? [重複] 質問する

非常に簡単なはずの課題があるのですが、どうも解決できないようです。

Python 辞書を csv ファイルに書き込むにはどうすればよいですか? 辞書のキーをファイルの一番上の行に書き込み、キーの値を 2 行目に書き込みたいだけです。

私がこれまでに得た中で最も近いものは次のとおりです(他の人の投稿から得たものです)。

f = open('mycsvfile.csv','wb')
w = csv.DictWriter(f,my_dict.keys())
w.writerows(my_dict)
f.close()

問題は、上記のコードでは最初の行にキーのみが書き込まれ、それだけであるように見えることです。2 行目に書き込まれた値は取得されません。

何か案は?

ベストアンサー1

DictWriter.writerows()辞書ではなく辞書のリストを期待する を使用しています。 DictWriter.writerow()1 行を書き込みたいのです。

DictWriter.writeheader()csv ファイルにヘッダーが必要な場合にも使用できます。

こちらもチェックしてみてください声明withのためにファイルを開くより Python らしくて読みやすいだけでなく、例外が発生した場合でも自動的に閉じる処理が行われます。

これらの変更を加えた例:

import csv

my_dict = {"test": 1, "testing": 2}

with open("mycsvfile.csv", "w", newline="") as f:
    w = csv.DictWriter(f, my_dict.keys())
    w.writeheader()
    w.writerow(my_dict)

これによって次のものが生成されます:

test,testing
1,2

コメントに記載されているように、newline=""CSVライターは独自の改行管理を行うため、 を使用します。そのため、 の組み込み管理は無効にしますopen()ドキュメントに記載されている通り

おすすめ記事