Tôi có phương pháp sau đây mà tôi chọn tất cả các id từ bảng và thêm chúng vào danh sách và trả về danh sách đó. Nhưng khi thực thi mã này, tôi sẽ nhận được các chỉ báo tuple phải là số nguyên ... lỗi. Tôi có kèm theo lỗi và in ra cùng với phương pháp của tôi:Python: chỉ số tuple phải là số nguyên, không str khi chọn từ bảng 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
In ấn gì phương pháp của tôi không:
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
Nếu bạn muốn có thể kéo các giá trị cột ra theo tên cột, bạn có thể thử tạo con trỏ bằng MySQLdb.cursors.DictCursor. Xem http://stackoverflow.com/questions/10195139/how-to-retrieve-sql-result-column-value-using-column-name-in-python –