全2572文字

データベースを扱うにはSQLの知識が不可欠です。Pythonに付属の「SQLite 3」を使えば、SQLデータベースのプログラミングを手軽に始められます。本特集では、SQLite 3を使ってSQLの基本的な使い方を解説します。

 基本のキホンを体験したところで、Pythonならではと言えるプログラミングに挑戦してみましょう。CSV(Comma Separated Value)ファイルとExcelファイルのデータを、データベースに格納するプログラムの作成です(図7)。Pythonであれば、このようなプログラムを手軽に作れます。

図7●CSVファイルとExcelファイルを読み込んで、データをデータベースに格納するプログラムを作る。Pythonであれば簡単に作成できる
図7●CSVファイルとExcelファイルを読み込んで、データをデータベースに格納するプログラムを作る。Pythonであれば簡単に作成できる
[画像のクリックで拡大表示]

CSVファイルを読み込んでテーブルに格納

 まずは、CSVファイルからです。図8のCSVファイル「purchase.csv」を読み込んで、ファイル内のデータをデータベースに格納するプログラムを作成しましょう。

図8●「purchase.csv」の中身
図8●「purchase.csv」の中身
[画像のクリックで拡大表示]

 このpurchase.csvの列は、購入日、商品名、購入数の3つです。ですから、図4のテーブルにデータを格納できます。SQLに関しては、先ほどのPart 1で使ったものをそのまま利用できるでしょう。

 問題はCSVファイルの扱いですが、これも難しくはありません。Pythonでは、標準ライブラリにある「csv」ライブラリを使うことで、CSVのデータの行を簡単にリストに変換できます。対話モードでpurchase.csvを読み込んで、リストに変換したデータを表示してみましょう。

>>> import csv
>>> csvfile = open('purchase.csv')
>>> csv_reader = csv.reader(csvfile)
>>> for row in csv_reader:
...  print(row)
...
['購入日', '商品名', '購入数']
['2021/01/04', 'マスク', '20']
['2021/01/04', 'フェイスシールド', '2']
['2021/01/04', 'アルコール液', '2']
['2021/01/11', '除菌シート', '10']
['2021/01/12', '手袋', '10']
['2021/01/12', 'アクリルパーティション', '2']

 これらのリストを、INSERT INTO〜VALUESで、テーブルに挿入すればよいのです。なお、リストの中のデータはすべて文字列になっています。

 「csv.reader関数」はCSVファイルを読み込んで、イテレータのreaderオブジェクトを生成します。このreaderオブジェクトは、リストに変換されたCSVの1行のデータを返します。

 では、CSVファイルを読み込んで、データをデータベースのテーブルに格納するプログラム「import_csv.py」を作りましょう。これはリスト1のようになります。いくつか補足説明します。

リスト1●「import_csv.py」。CSVファイルを読み込んで、データをデータベースのテーブルに格納するプログラム
リスト1●「import_csv.py」。CSVファイルを読み込んで、データをデータベースのテーブルに格納するプログラム
[画像のクリックで拡大表示]