ホームページ >データベース >mysql チュートリアル >Python で SQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?
SQLite クエリからの辞書の取得
Python では、通常、SQLite データベースからデータを取得すると、テーブルの行を表すリストが生成されます。これはデータにアクセスする場合には便利ですが、より構造化されたキーベースのアクセスのために代わりに辞書を取得することが望ましい場合があります。
これを実現する 1 つの方法は、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("test.sqlite") con.row_factory = dict_factory cur = con.cursor() cur.execute("select * from table") rows = cur.fetchall() print(rows[0]["col1"])
SQLite ドキュメントで提案されている別の解決策は、最適化された Row タイプを row_factory として使用することです。
con.row_factory = sqlite3.Row cursor = con.cursor() row = cursor.fetchone() print(row["col1"])
この Row タイプは、インデックスベースの両方を提供します。また、メモリ オーバーヘッドを最小限に抑えながら、大文字と小文字を区別しない名前ベースで列にアクセスできるため、カスタム辞書ベースのアプローチよりも効率的なソリューションになります。
以上がPython で SQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。