尝试访问字典中的键时出现 KeyError
Getting KeyError when trying to access key in a dictionary
我正在使用 AWS 的 Boto3 来描述安全组,并尝试访问特定区域中所有可用安全组的 FromPort
密钥。但是当我尝试这样做时,它会列出一些端口,然后抛出 KeyError
.
代码:
import boto3
client = boto3.client('ec2')
response = client.describe_security_groups()
for sg in response['SecurityGroups']:
for ip in sg['IpPermissions']:
print(ip['FromPort'])
输出:
80
5432
22
22
3622
8443
3
80
3622
8080
5432
22
8443
443
Traceback (most recent call last):
File ".\a.py", line 8, in <module>
print(ip['FromPort'])
KeyError: 'FromPort'
您的代码假定您尝试打印的条目始终在您返回的响应中。您可以像这样使代码更健壮:
替换
ip['FromPort']
和
ip.get('FromPort','((missing))')
我正在使用 AWS 的 Boto3 来描述安全组,并尝试访问特定区域中所有可用安全组的 FromPort
密钥。但是当我尝试这样做时,它会列出一些端口,然后抛出 KeyError
.
代码:
import boto3
client = boto3.client('ec2')
response = client.describe_security_groups()
for sg in response['SecurityGroups']:
for ip in sg['IpPermissions']:
print(ip['FromPort'])
输出:
80
5432
22
22
3622
8443
3
80
3622
8080
5432
22
8443
443
Traceback (most recent call last):
File ".\a.py", line 8, in <module>
print(ip['FromPort'])
KeyError: 'FromPort'
您的代码假定您尝试打印的条目始终在您返回的响应中。您可以像这样使代码更健壮:
替换
ip['FromPort']
和
ip.get('FromPort','((missing))')