我所有我的AWS目标组都有一个.json文件。这是使用aws elbv2 describe-target-groups
创建的。我想从该文件中提取每个TargetGroupArn并将其存储到Python列表中。
使用我当前的代码,我没有输出。我可以确认字典中有数据,但是没有任何内容要添加到我要创建的列表中。
import json
from pprint import pprint
with open('target_groups.json') as f:
data = json.load(f)
items = data['TargetGroups']
arn_list = []
for key, val in data.items():
if key == 'TargetGroupArn':
arn_list.append(val)
print(arn_list)
预期结果将使arn_list像这样打印出来:
[arn:aws:elb:xxxxxxx:targetgroup1, arn:aws:elb:xxxxxxx:targetgroup2, arn:aws:elb:xxxxxxx:targetgroup3]
答案 0 :(得分:1)
将代码更改为此:
import json
from pprint import pprint
with open('target_groups.json') as f:
data = json.load(f)
arn_list = []
if 'TargetGroups' in data:
items = data['TargetGroups']
for item in items:
if 'TargetGroupArn' in item:
arn_list.append(item['TargetGroupArn'])
print(arn_list)
else:
print('No data')
有很多方法可以使此python代码更简洁。但是,我更喜欢罗word的风格,以便于阅读。
还请注意,此代码检查密钥是否存在,以便该代码不会因缺少数据而进行堆栈转储。
答案 1 :(得分:1)
如果可以发布您要从中获取数据的文件会更好,但是这一部分:
for key, val in data.items():
if key == 'TargetGroupArn':
arn_list.append(val)
需要更改为:
for key, val in items.items():
if key == 'TargetGroupArn':
arn_list.append(val)
您从“数据”中获取数据并将其添加到项目中,但是您从未真正使用过它。 试一试。