Ho il seguente metodo che seleziono tutti gli id dalla tabella e li aggiungo a una lista e restituisco quella lista. Ma quando eseguo questo codice, finisco per ottenere gli indovinelli tuple devono essere numeri interi ... errore. Ho allegato l'errore e la stampa fuori con il mio metodo:Python: gli indici tupla devono essere interi, non str quando si seleziona dalla tabella mysql
def questionIds(con):
print 'getting all the question ids'
cur = con.cursor()
qIds = []
getQuestionId = "SELECT question_id from questions_new"
try:
cur.execute(getQuestionId)
for row in cur.fetchall():
print 'printing row'
print row
qIds.append(str(row['question_id']))
except Exception, e:
traceback.print_exc()
return qIds
stampa ciò che il mio metodo fa:
Database version : 5.5.10
getting all the question ids
printing row
(u'20090225230048AAnhStI',)
Traceback (most recent call last):
File "YahooAnswerScraper.py", line 76, in questionIds
qIds.append(str(row['question_id'][0]))
TypeError: tuple indices must be integers, not str
Se si desidera poter estrarre i valori delle colonne per nome di colonna, si consiglia di provare a creare il cursore con MySQLdb.cursors.DictCursor. Vedi http://stackoverflow.com/questions/10195139/how-to-retrieve-sql-result-column-value-using-column-name-in-python –