PythonとPostgreSQLを使ってCSVデータをデータベースにインポートする方法を紹介します。この記事では、Pythonのライブラリであるpsycopg2
を使用します。
まず、PythonとPostgreSQLを接続するためにpsycopg2
をインストールします。次に、CSVファイルを読み込み、そのデータをPostgreSQLのテーブルに挿入します。具体的なコードは以下の通りです。
import io
import psycopg2
with psycopg2.connect(dbname="your_db", user="your_username", password="your_password", host="localhost", port=5432) as connection:
connection.set_isolation_level(0)
with connection.cursor() as cursor:
cursor.execute("DELETE FROM your_table") # テーブルをクリア
input_data = '1,X0001,Mike,m,1972-08-09,2020-05-08 11:22:22.222\\n' + '2,X0002,Smith,\\\\N,1972-08-09,2020-05-08 11:22:22.222\\n' + '3,X0003,Naomi,,1972-08-09,2020-05-08 11:22:22.222\\n'
with io.StringIO(input_data) as file_io:
cursor.copy_from(file_io, 'your_table', sep=',', null='\\\\N', columns=('id', 'customer_no', 'customer_name', 'sex', 'birth_date', 'created_at'))
cursor.execute("select * from your_table;")
print(cursor.fetchall())
このコードでは、まずpsycopg2.connect
を使ってデータベースに接続します。その後、cursor.execute
を使って既存のデータを削除します。そして、cursor.copy_from
を使ってCSVデータをテーブルに挿入します。最後に、cursor.execute
とcursor.fetchall
を使ってデータが正しく挿入されたことを確認します。
この方法を使えば、大量のCSVデータを効率的にPostgreSQLにインポートすることができます。ただし、このコードはあくまで一例であり、実際の使用時には適切にパラメータを調整する必要があります。
以上、Pythonを使ってCSVデータをPostgreSQLにインポートする方法について解説しました。この情報が皆さんの開発に役立つことを願っています。