首頁 > 資料庫 > mysql教程 > 如何從 SQLite 查詢中有效率地檢索字典而不是列表?

如何從 SQLite 查詢中有效率地檢索字典而不是列表?

Mary-Kate Olsen
發布: 2025-01-04 02:18:41
原創
813 人瀏覽過

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

從 SQLite 查詢取得字典

從 SQLite 資料庫擷取資料涉及取得與行對應的清單。雖然可以使用描述屬性來確定列名稱,但將結果轉換為字典需要額外的工作。

使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板