如何從SQLite 查詢中擷取字典
執行SQLite 查詢時,你可能會遇到需要以字典格式取得資料的情況列表。本文將為您提供幾種解決方案來實現此目的。
使用 row_factory
SQLite 連線中的 row_factory 參數可讓您指定如何傳回行。將其設定為自訂函數,您可以將元組轉換為字典:
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"]) # Output: 1
使用sqlite3.Row
或者,您可以將row_factory 設定為sqlite3.Row ,它提供了一種透過索引和存取列的最佳化方法name:
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # Set row_factory to sqlite3.Row cursor = con.cursor() row = cursor.fetchone() print(row["col1"]) # Access columns by name
自訂實作
如果上述解決方案都無法滿足您的需求,您可以建立自己的自訂實作。但是,由於與提供的解決方案相比存在潛在的效能問題,通常不建議使用這種方法。
以上是如何從 SQLite 查詢中檢索字典資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!