mirror of
https://github.com/python/cpython.git
synced 2026-02-14 03:10:44 +00:00
gh-96168: Improve sqlite3 dict_factory example (GH-96457)
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
(cherry picked from commit 91f40f3f78)
Co-authored-by: Erlend E. Aasland <erlend.aasland@innova.no>
This commit is contained in:
parent
583591134c
commit
fca8e94dbf
1 changed files with 9 additions and 18 deletions
|
|
@ -588,25 +588,16 @@ Connection objects
|
|||
|
||||
Example:
|
||||
|
||||
.. testcode::
|
||||
.. doctest::
|
||||
|
||||
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.execute("SELECT 1 AS a")
|
||||
print(cur.fetchone()["a"])
|
||||
|
||||
con.close()
|
||||
|
||||
.. testoutput::
|
||||
:hide:
|
||||
|
||||
1
|
||||
>>> def dict_factory(cursor, row):
|
||||
... col_names = [col[0] for col in cursor.description]
|
||||
... return {key: value for key, value in zip(col_names, row)}
|
||||
>>> con = sqlite3.connect(":memory:")
|
||||
>>> con.row_factory = dict_factory
|
||||
>>> for row in con.execute("SELECT 1 AS a, 2 AS b"):
|
||||
... print(row)
|
||||
{'a': 1, 'b': 2}
|
||||
|
||||
If returning a tuple doesn't suffice and you want name-based access to
|
||||
columns, you should consider setting :attr:`row_factory` to the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue