cursor
обектът има .description
атрибут, който ви казва имената на всяка колона, използвайте го, за да превърнете ред в 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)
За подробности относно .description
атрибут, вижте спецификацията на Python DB API 2.0
.