[英]How can I append values from a JSON dictionary to a new list?
我的所有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]
將代碼更改為此:
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的風格,以便於閱讀。
還要注意,此代碼檢查密鑰是否存在,以便該代碼不會因缺少數據而進行堆棧轉儲。
如果可以發布要從中獲取數據的文件,那就更好了,但是這一部分:
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)
您從“數據”中獲取數據並將其添加到項目中,但是您從未真正使用過它。 試一試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.