Il cursor
l'oggetto ha un .description
attributo che ti dice i nomi di ogni colonna, usalo per trasformare una riga in un dict:
cursor.execute("""
SELECT id, name
FROM school_subjects
""")
columns = [desc[0] for desc in cursor.description]
result = []
for row in rows:
row = dict(zip(columns, row))
result.append(row)
Per i dettagli sul .description
attributo, vedere la specifica Python DB API 2.0
.