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