我正在尝试从数据库中提取数据并将它们分配给不同的列表。这个特定的错误给我带来了很多麻烦“TypeError:元组索引必须是整数,而不是 str”我尝试将其转换为浮点数等,但没有成功。
代码如下
conn=MySQLdb.connect(*details*) cursor=conn.cursor() ocs={} oltv={} query="select pool_number, average_credit_score as waocs, average_original_ltv as waoltv from *tablename* where as_of_date= *date*" cursor.execute(query) result=cursor.fetchall() for row in result: print(row) ocs[row["pool_number"]]=int(row["waocs"]) oltv[row["pool_number"]]=int(row["waoltv"])
打印语句的示例输出如下:
('MA3146', 711L, 81L) ('MA3147', 679L, 83L) ('MA3148', 668L, 86L)
这是我得到的确切错误:
ocs[row["pool_number"]]=int(row["waocs"]) TypeError: tuple indices must be integers or slices, not str
我该如何解决这个错误?
就像错误所说的那样,row是一个元组,因此您不能执行row["pool_number"]。您需要使用索引:row[0]。
row
row["pool_number"]
row[0]