Python: SQLite3のデータを辞書型(ディクショナリ)に格納
SQLite3のデータをディクショナリに格納するサンプルコードと、 その実行結果を説明します。
DB接続にはwith文を使い、 テーブルのカラムは(ID, NAME)です。
サンプルコード
import sqlite3
def fetch_data_as_dict(db_path):
query = "SELECT ID, NAME FROM your_table_name"
with sqlite3.connect(db_path) as conn:
cursor = conn.cursor()
cursor.execute(query)
# 結果をディクショナリのリストとして取得
rows = cursor.fetchall()
columns = [desc[0] for desc in cursor.description] # カラム名の取得
result = [dict(zip(columns, row)) for row in rows]
return result
# データベースファイルのパス
db_path = 'example.db'
# データ取得
data = fetch_data_as_dict(db_path)
# 結果表示
for row in data:
print(row)
コードの説明
- sqlite3.connect(db_path) を with 文で使って、データベース接続を管理します。接続が終了すると、自動的に閉じられます。
- cursor.execute(query) でクエリを実行し、cursor.fetchall() で結果を取得します。
- cursor.description を使ってカラム名を取得します。
- dict(zip(columns, row)) を使って、各行をディクショナリに変換し、それをリストに格納します。
実行結果
このコードを実行すると、SQLite3データベース内の your_table_name テーブルから ID と NAME カラムのデータを取得し、次のように表示します(サンプルデータが存在する場合):
{'ID': 1, 'NAME': 'Alice'}
{'ID': 2, 'NAME': 'Bob'}
{'ID': 3, 'NAME': 'Charlie'}
この結果は、テーブルに格納されているデータによって異なります。上記の結果は単なる例です。データベースの内容に応じて、ディクショナリの内容が変わります。
your_table_name には、実際のテーブル名を入れてください。また、db_path にはデータベースファイルのパスを指定してください。