ホームページ >データベース >mysql チュートリアル >SQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?
SQLite クエリからの辞書の取得
SQLite データベースからデータを取得すると、通常、リストのリストが生成されます。各内部リストは、データベース内の行。このメソッドは機能しますが、列名でデータにアクセスする場合には不便な場合があります。この記事では、SQLite クエリから辞書を取得するための代替アプローチを検討し、データを操作するためのより直感的な方法を提供します。
Row Factory
row_factory 関数を使用すると、次の方法を指定できます。結果の行が返されます。これを dict_factory に設定すると、クエリ結果を辞書に変換できます。キーは列名、値は列の値です。次に例を示します。
import sqlite3 def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d con = sqlite3.connect(":memory:") con.row_factory = dict_factory cur = con.cursor() cur.execute("select 1 as a") print(cur.fetchone()["a"])
SQLite3.Row
もう 1 つのオプションは、sqlite3.Row 型を行ファクトリとして使用することです。最小限のメモリオーバーヘッドで、インデックスベースと大文字小文字を区別しない名前ベースの両方で列へのアクセスを提供します:
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # add this row cursor = con.cursor()
sqlite3.Row を使用すると、インデックスまたは名前のいずれかで列の値にアクセスできます:
row = cursor.fetchone() value_by_index = row[0] value_by_name = row["col_name"]
結論
row_factory 関数とsqlite3.Row 型は、SQLite クエリから辞書を取得する効果的な方法を提供し、列名によるデータの操作を容易にします。この 2 つのどちらを選択するかは、特定の要件と好みによって決まります。
以上がSQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。