### 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"]