1. ホーム
  2. python

[解決済み】TypeError: タプルのインデックスは整数でなければならず、strであってはならない

2022-02-08 08:48:19

質問

データベースからデータを取り出し、異なるリストに割り当てようとしています。 この特定のエラーは私に多くの問題を与えています "TypeError: タプルインデックスは整数でなければなりません、str"ではありません。 私はそれをfloatに変換するなどしてみましたが、成功しませんでした。

コードは次のようになります。

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"])

print文の出力例は次のとおりです。

('MA3146', 711L, 81L)
('MA3147', 679L, 83L)
('MA3148', 668L, 86L)

そして、これは私が得ている正確なエラーです。

ocs[row["pool_number"]]=int(row["waocs"])
TypeError: tuple indices must be integers, not str

何かお手伝いいただけると幸いです。ありがとうございます。

解決方法は?

エラーにあるように row はタプルなので row["pool_number"] . インデックスを使用する必要があります。 row[0] .