ホームページ >データベース >mysql チュートリアル >Python で SQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?

Python で SQLite クエリからリストの代わりに辞書を取得するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-04 11:42:34960ブラウズ

How Can I Retrieve Dictionaries Instead of Lists from SQLite Queries in Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。