#65 Pythonで辞書型のリストをCSVファイルに出力してみた
はじめに
今回は、Pythonのcsvモジュールを使用し、辞書型のリストのデータをCSVファイルとして出力させてみました。
CSVでのデータ出力はよく使われると思いますので、よかったら参考にしてみてください。
コード
# csvモジュールをインポート
import csv
# 辞書型のデータ
data = [
{'Name': 'Aさん', 'Age': 25, 'City': '札幌'},
{'Name': 'Bさん', 'Age': 30, 'City': '小樽'},
{'Name': 'Cさん', 'Age': 35, 'City': '函館'}
]
# CSVファイルの作成先のパス(環境に合わせて好きなパスを指定してください)
csv_file_path = r'C:\Users\{ユーザー名}\Desktop\テスト用フォルダ\data.csv'
# CSVファイルを書き込みモードで開く
with open(csv_file_path, 'w') as csvfile:
# ヘッダ(列の名前)行を定義
fieldnames = ['Name', 'Age', 'City']
# DictWriterオブジェクトを作成
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# ヘッダ行を書き込む
writer.writeheader()
# 各行のデータを書き込む
for row in data:
writer.writerow(row)
コードの内容
csvモジュール
CSVファイルの読み書きを行うための機能を提供してくれます。
参照:https://docs.python.org/ja/3/library/csv.html
今回はcsvモジュールの DictWriter を使用します。
詳細
# 辞書型のデータ
data = [
{'Name': 'Aさん', 'Age': 25, 'City': '札幌'},
{'Name': 'Bさん', 'Age': 30, 'City': '小樽'},
{'Name': 'Cさん', 'Age': 35, 'City': '函館'}
]
CSVに書き込みたいデータを辞書型のリストで定義します。
辞書型は {'キー名': '値'} の形で表記します。
各辞書は1行のデータを表し、'キー名'でヘッダ名を指定し'値'は列のデータとしてCSVに書き込まれます。
複数の辞書型のデータを扱うため、[]で囲いリスト化しています。
csv_file_path = r'C:\Users\{ユーザー名}\Desktop\テスト用フォルダ\data.csv'
CSVファイルの保存先のパスを定義します。
raw 文字列、r
を使うと、バックスラッシュをエスケープ文字として解釈しないようになります。
参照:https://www.javadrive.jp/python/string/index4.html
with open(csv_file_path, 'w') as csvfile:
CSVファイルを書き込みモードw
で開きます。
with
構文を使うことで、ブロック内の処理が終了したら自動的にファイルを閉じてくれます。
fieldnames = ['Name', 'Age', 'City']
CSVファイルのヘッダをリストで定義します。
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
csv.DictWriter
オブジェクトを作成し、CSVファイルへの書き込みを行う準備をします。
fieldnames
パラメータで定義した順番でCSVファイルに書き込みを行います。
writer.writeheader()
CSVファイルの先頭にヘッダ行を書き込みます。
for row in data:
data
リストから辞書を1つずつ取り出し、辞書の数だけループします。
writer.writerow(row)
取り出した辞書のデータをCSVファイルに書き込みます。
実行結果
指定したパスに data.csv
という名前のCSVファイルが生成されます。
中身を開くとdata
で定義した内容が表示されています!
最後に
今後もPythonの機能をいろいろ触っていけたらと思います。
ご覧いただきありがとうございました。
Discussion