我有一个简单的代码,它进入AWS并获取一些数据,然后将其输出到控制台。
菌种:

import boto3
from pprint import pprint

ec2 = boto3.resource('ec2')
client = boto3.client('ec2')

#This is the VPC ID and Linked Tags
for vpctags in client.describe_vpcs()['Vpcs']:
    print("VPC ID: ", vpctags['VpcId'])
    print("Tags: ", vpctags['Tags'])
    for subnet in client.describe_subnets()['Subnets']:
        print("Subnet ID: ", subnet['SubnetId'])
        print("Subnet ID: ", subnet['Tags'])

###############################################

我得到一个错误,因为我的一个或多个子网没有标记:
print(“subnet id:”,subnet[“tags”])keyror:“tags”
我不希望每个子网都有标签,所以有没有一种方法可以简单地忽略标签的不足,只打印空的,或者简单地继续?
很抱歉,如果这听起来是一个愚蠢的问题,我已经搜索了谷歌并找到了一些想法,但它们看起来有点先进。

最佳答案

对,
你可以替换

print("Subnet ID: ", subnet['Tags'])

具有
print("Subnet ID: ", subnet.get('Tags', ''))

使用get with允许您在不存在标记的情况下定义默认值

07-27 13:15