Python: tuple indices must be integers, not str when selecting from mysql table

The python standard mysql library returns tuples from cursor.execute. To get at the question_id field you’d use row[0], not row['question_id']. The fields come out in the same order that they appear in the select statement.

A decent way to extract multiple fields is something like

for row in cursor.execute("select question_id, foo, bar from questions"):
    question_id, foo, bar = row

Leave a Comment