我試圖讓 for 循環(huán)在 boto3 中工作,盡管我讓它工作,但很難弄清楚。目前我有: `spot_requests = ec2.describe_spot_instance_requests() for index in spot_requests['SpotInstanceRequests']: instanceID = index["InstanceId"] instanceState = index["State"] spotRequestID = index["SpotInstanceRequestId"] print(f'{instanceID} is {instanceState} and has a request ID of {spotRequestID}')`它返回類似:“I-1234556 已禁用,請(qǐng)求 ID 為 Sir-12344”我不明白的是為什么索引需要位于 = 符號(hào)之后,以及為什么如果我只有以下內(nèi)容就會(huì)出錯(cuò):instanceID = ["InstanceId"]另外,我了解字典的工作原理,您引用字典名稱,然后在[方括號(hào)]中引用您想要查找其值的鍵。但是,當(dāng)我嘗試這個(gè)時(shí)(這顯然是正確的) `describe_instance = ec2.describe_instances() for item2 in describe_instance['Reservations']: instance_state = item2['Instances'][0]["State"]["Name"]`我不明白 [0] 正在做什么,因?yàn)樽值渲袥]有值為 0 的鍵。如果其中有嵌套字典我該怎么辦?會(huì)是這樣的嗎:describe_instance = ec2.describe_instances() for item2 in describe_instance['Reservations']: instance_state = item2['Instances'][0]["State"]["Name"][0]["Nested value I want to find"]謝謝
1 回答

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
我不明白的是為什么索引需要位于 = 符號(hào)之后,以及為什么如果我只有以下內(nèi)容就會(huì)出錯(cuò):
“index”之所以存在,是因?yàn)槟鞘悄獜闹蝎@取指定值的字典。
我不明白 [0] 正在做什么,因?yàn)樽值渲袥]有值為 0 的鍵。
[<number>] 語法表示您正在嘗試從列表中獲取值,其中數(shù)字表示您要獲取列表中的哪個(gè)索引。在您的特定情況下,item2 中的“Instances”對(duì)象是包含有關(guān)所有 EC2 實(shí)例信息的字典列表。這就是為什么您可以使用 ['State']['Name'] 來獲取實(shí)例當(dāng)前所處狀態(tài)的名稱。
如果其中有嵌套字典我該怎么辦?會(huì)是這樣的嗎:
如果“名稱”字段包含一個(gè)字典列表(這沒有意義),那么您可以按照上一個(gè)示例中的建議進(jìn)行操作。
添加回答
舉報(bào)
0/150
提交
取消