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

33 lines
813 B
Python

#!/usr/bin/env python
from contextlib import closing
from collections import namedtuple
import pymysql
def named_tuple_cursor(cursor):
'''Generate rows as named tuple'''
column_names = [desc[0] for desc in cursor.description]
row_tuple = namedtuple('row_tuple', column_names)
# "row_tuple" is internal name of row_tuple class
for cursor_row in cursor.fetchall():
yield row_tuple(*cursor_row)
with closing(pymysql.connect(
host="localhost",
db="presidents",
user="scripts",
passwd="scripts",
)) as myconn:
c = myconn.cursor()
# select first name, last name from all presidents
num_recs = c.execute('''
select lastname, firstname
from presidents
''')
for row in named_tuple_cursor(c):
print(row.firstname, row.lastname)