2016-02-12 187 views
8

我想從數據庫中提取數據並將它們分配給不同的列表。 這個具體的錯誤給了我很多麻煩「TypeError:元組索引必須是整數,而不是str」 我試圖將其轉換爲浮動等,但沒有成功。TypeError:元組索引必須是整數,而不是str

的代碼放在下面的print語句

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, not str 

任何幫助將不勝感激!感謝人們!

回答

8

像錯誤說,row是一個元組,所以你不能做row["pool_number"]。您需要使用索引:row[0]

1

問題是你如何訪問row

具體的ocs[row["pool_number"]]=int(row["waocs"])

row["waocs"]row["pool_number"]如果您查找的fetchall()official-documentation你找。

The method fetches all (or all remaining) rows of a query result set and returns a list of tuples.

因此,你必須用row[__integer__]訪問行的值類似row[0]

相關問題