Python: SQLite3: SELECT文の結果をリストに格納する
Pythonを使ってSQLite3のテーブルからデータを取得し、それをリストに格納する関数を以下に示します。 この関数は、with文を使用してデータベース接続を管理し、結果をリストのリストとして返します。
import sqlite3 def fetch_data_as_list(db_file, table_name): data_list = [] with sqlite3.connect(db_file) as conn: cursor = conn.cursor() cursor.execute(f"SELECT * FROM {table_name}") # fetchall()の結果をリストのリストに変換 data_list = [list(row) for row in cursor.fetchall()] # fetchall()の結果をタプルのリストで返す場合 # data_list = cursor.fetchall() return data_list # 使用例 db_file = "your_database.db" table_name = "your_table" result = fetch_data_as_list(db_file, table_name) # 結果の表示(確認用) for row in result: print(row)
この関数 fetch_data_as_list の特徴:
- データベースファイル名とテーブル名を引数として受け取ります。
- with 文を使用してデータベース接続を管理し、自動的にクローズします。
- SELECT * FROM {table_name} クエリを実行して、指定されたテーブルの全データを取得します。
- fetchall() の結果をリストのリストに変換します。各行がリストとして表現されます。
- 結果をリストのリストとして返します。
使用時は、データベースファイル名とテーブル名を指定して関数を呼び出すだけです。 この関数は柔軟性があり、異なるデータベースやテーブルに対して再利用できます。
注意点:
- テーブル名はSQLインジェクション攻撃を防ぐため、 実際の使用時にはパラメータ化クエリを使用することをお勧めします。
- 大量のデータを扱う場合は、メモリ使用量に注意が必要です。 必要に応じて、データを分割して取得する方法を検討してください。