Files
courses/py3interm/EXAMPLES/db_sqlite_named_tuple_cursor.py
T
2025-05-20 11:57:43 -04:00

30 lines
792 B
Python

#!/usr/bin/env python
from collections import namedtuple
import sqlite3
def named_tuple_cursor(cursor):
'''Generate rows as named tuples'''
column_names = [desc[0] for desc in cursor.description]
name_str = ' '.join(column_names)
# "row_tuple" is an arbitrary name -- any name could be used here
row_tuple = namedtuple('row_tuple', name_str)
for cursor_row in cursor.fetchall():
row_tuple = row_tuple(*cursor_row)
yield row_tuple
with sqlite3.connect("../DATA/presidents.db") as s3conn:
c = s3conn.cursor()
# select first name, last name from all presidents
num_recs = c.execute('''
select firstname, lastname
from presidents
''')
for row in named_tuple_cursor(c):
print(row.firstname, row.lastname)