我試圖讓 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 已禁用,請求 ID 為 Sir-12344”我不明白的是為什么索引需要位于 = 符號之后,以及為什么如果我只有以下內容就會出錯:instanceID = ["InstanceId"]另外,我了解字典的工作原理,您引用字典名稱,然后在[方括號]中引用您想要查找其值的鍵。但是,當我嘗試這個時(這顯然是正確的) `describe_instance = ec2.describe_instances() for item2 in describe_instance['Reservations']: instance_state = item2['Instances'][0]["State"]["Name"]`我不明白 [0] 正在做什么,因為字典中沒有值為 0 的鍵。如果其中有嵌套字典我該怎么辦?會是這樣的嗎: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貢獻1812條經驗 獲得超5個贊
我不明白的是為什么索引需要位于 = 符號之后,以及為什么如果我只有以下內容就會出錯:
“index”之所以存在,是因為那是您要從中獲取指定值的字典。
我不明白 [0] 正在做什么,因為字典中沒有值為 0 的鍵。
[<number>] 語法表示您正在嘗試從列表中獲取值,其中數(shù)字表示您要獲取列表中的哪個索引。在您的特定情況下,item2 中的“Instances”對象是包含有關所有 EC2 實例信息的字典列表。這就是為什么您可以使用 ['State']['Name'] 來獲取實例當前所處狀態(tài)的名稱。
如果其中有嵌套字典我該怎么辦?會是這樣的嗎:
如果“名稱”字段包含一個字典列表(這沒有意義),那么您可以按照上一個示例中的建議進行操作。
添加回答
舉報
0/150
提交
取消