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 にはデータベースファイルのパスを指定してください。