簡體   English   中英

Python-Boto3-dict沒有屬性'InstanceId'

[英]Python - Boto3 - dict has no attribute 'InstanceId'

我讓用戶輸入一個AWS實例ID列表。 我正在使用Pyton 3和boto打印實例的信息,然后將其刪除。

當我嘗試運行腳本時出現此錯誤:

File ".\aws_test.py", line 11, in <module>
    print("Instance ID: ", instance.id)
AttributeError: 'dict' object has no attribute 'id'

這是我的示例代碼:

import boto3
import collections
from collections import defaultdict
ec2 = boto3.client('ec2')
instance_id = 'i-076361b30ee404bb4'
instance = ec2.describe_instances(
    InstanceIds=[instance_id]
    )['Reservations'][0]['Instances'][0]
# Add instance info to a dictionary
ec2info = defaultdict()
print("Instance ID: ", instance.id)

如果可以獲取實例ID,則可以訪問需要打印的其他ID,如下所示:

ec2info[instance.id] = {
    'Instance ID': instance.id,
    'Type': instance.instance_type,
    'State': instance.state['Name'],
    'Private IP': instance.private_ip_address,
    'Public IP': instance.public_ip_address,
    'Launch Time': instance.launch_time
    }

並打印出來。 為什么無法獲得instance.id值? 如何解決此錯誤?

describe_instances() 返回一個dict 采用:

instance["id"]

這使用instance.__getitem__("id")進行密鑰查找。 您正在做的是一個屬性查找,這是不同的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM