SQLite クエリからの辞書の取得
SQLite データベースからのデータの取得には、行に対応するリストの取得が含まれます。 description 属性を使用して列名を決定することは可能ですが、結果を辞書に変換するには追加の作業が必要です。
row_factory を使用した解決策
row_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を使った解決策
SQLite ドキュメントでは、列への名前ベースの効率的なアクセスを提供する sqlite3.Row 型の使用を推奨しています。 row_factory を sqlite3.Row に設定すると、名前による列のインデックス付けとアクセスの両方が可能になります。
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # add this row cursor = con.cursor()
以上がSQLite クエリからリストではなく辞書を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。