Pythonでリストの辞書をCSVファイルに変換する

スポンサーリンク

Pythonでリストの辞書をCSVファイルに変換してみます。

リストの辞書は、定義された辞書内にリストが定義され存在している形です。

■Python

今回のPythonのバージョンは、「3.6.8」を使用しています。(Windows10)(pythonランチャーでの確認)

■リストの辞書をCSVファイルに変換する

では、早速リストの辞書をCSVファイルに変換するスクリプトを書いていきます。

■コード

import csv

data = {"1組":['吉田', '盛岡','佐々木'],
    "2組":['森田','鈴木','田中'],
    "3組":['中村','太田','杉本']}

with open(r"C:\Users\user_\test\data_test.csv","w") as outfile:
    writerfile = csv.writer(outfile)
    writerfile.writerow(data.keys())
    writerfile.writerows(zip(*data.values()))

今回は波括弧”{ }”を用いて、dataという辞書を定義します。その中のキーと値のペアの値を角括弧”[ ]”を用い、リストを定義します。リスト内には値を格納します。これでリストの辞書は作成できました。

次に、with構文を用いて、open()で括弧に引数,パラメータとして、data_test.csvというファイルを「C:\Users\user_\test(フォルダパス)」に新しく用意し、”w”(書き込みモード)で開いた状態で渡します。open()を用いているので、ファイルは開いた状態です。そして、この開いたファイルを、outfile変数とします。

その後、with構文内に処理を記述します。処理の内容は、writerfile変数を定義し、writer()を用いて、outfile変数に書き込みを行います。書き込みは、writerow()を用いて括弧内に引数,パラメータとして「data.keys()」を渡し、辞書内のキーを、1行書き込みます。さらに、writerows()を用いて括弧内に引数,パラメータとして、「zip(*data.values())」を渡します。これで、辞書内の値(リスト)をzip()を用い複数のリストを同時に取得、またアスタリスク”*”を用いて、リストの内容を別個に取り出し、それを複数の行を書き込みます。

■実行・検証

このスクリプトを「csv_test1.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行すると、今回はprint()を用いて、CSVファイルへの書き込みの完了という文字列の出力はプログラムしていないので、何も表示されません。

表示されませんが、今回指定したCSVファイルが置かれている場所を確認すると、CSVファイルが生成されていることが確認できました。

ファイルの中身を確認すると、リストの辞書をCSVファイルに変換されていることも確認できました。

コメント

タイトルとURLをコピーしました