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 の特徴:

  1. データベースファイル名とテーブル名を引数として受け取ります。
  2. with 文を使用してデータベース接続を管理し、自動的にクローズします。
  3. SELECT * FROM {table_name} クエリを実行して、指定されたテーブルの全データを取得します。
  4. fetchall() の結果をリストのリストに変換します。各行がリストとして表現されます。
  5. 結果をリストのリストとして返します。

使用時は、データベースファイル名とテーブル名を指定して関数を呼び出すだけです。 この関数は柔軟性があり、異なるデータベースやテーブルに対して再利用できます。

注意点:

  • テーブル名はSQLインジェクション攻撃を防ぐため、 実際の使用時にはパラメータ化クエリを使用することをお勧めします。
  • 大量のデータを扱う場合は、メモリ使用量に注意が必要です。 必要に応じて、データを分割して取得する方法を検討してください。
Python