[英]Why do I get this error: TypeError: tuple indices must be integers or slices, not str
我有這樣的命令:
{'d': {'BidVolume1': 0, 'BidPrice1': 0.0, 'BidVolume2': 0, 'BidPrice2': 0.0, 'BidVolume3': 0, 'BidPrice3': 0.0, 'BidVolume4': 0, 'BidPrice4': 0.0, 'BidVolume5': 0, 'BidPrice5': 0.0, 'AskTotalVolume': 0}}
當我嘗試此代碼
for key in r['d'].items() :
print(key['BidTotalVolume'])
我收到以下錯誤消息:
TypeError:元組索引必須是整數或切片,而不是str
我要對程序說的是,用BidTotalVolume
鍵給我項目的值。
我應該怎么做? 為什么會收到此錯誤消息?
首先,您的字典中似乎沒有bidtotalvolume鍵。
其次,您嘗試在此處進行的操作或多或少是:
print(r['d'][key]['BidTotalVolume'])
您的詞典沒有3個等級,因此永遠無法使用。
我認為您的意思是:
for key, value in r.items():
print(r[key]['BidTotalVolume'])
由於BidTotalVolume不在您的詞典中,因此將失敗。 但是,嘗試使用其中的任何密鑰,它應該可以工作。
r[d]
是{'BidVolume1': 0, 'BidPrice1': 0.0, 'BidVolume2': 0, 'BidPrice2': 0.0, 'BidVolume3': 0, 'BidPrice3': 0.0, 'BidVolume4': 0, 'BidPrice4': 0.0, 'BidVolume5': 0, 'BidPrice5': 0.0, 'AskTotalVolume': 0}
所以它是一個字典。
現在,您正在像這樣的字典上進行迭代:
for key in r['d'].items()
key
名稱具有誤導性。 這里的key
是鍵和值的tuple
。 當嘗試在該元組上使用[]
時,會收到該錯誤。 您應該這樣直接訪問數據:
print(r['d']['BidTotalVolume'])
如注釋中所建議for key, values in d.items():
用作for key, values in d.items():
因為items()返回(key,value)的元組。 對於僅鍵,可以使用keys(),對於僅value,可以使用values()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.