13.13.6.2 Accessing columns by name instead of by index

Python 2.5

13.13.6.2 Accessing columns by name instead of by index

One useful feature of the sqlite3 module is the builtin sqlite3.Row class designed to be used as a row factory.

Rows wrapped with this class can be accessed both by index (like tuples) and case-insensitively by name:

import sqlite3

con = sqlite3.connect("mydb")
con.row_factory = sqlite3.Row

cur = con.cursor()
cur.execute("select name_last, age from people")
for row in cur:
    assert row[0] == row["name_last"]
    assert row["name_last"] == row["nAmE_lAsT"]
    assert row[1] == row["age"]
    assert row[1] == row["AgE"]

See About this document... for information on suggesting changes.