簡體   English   中英

如何將JSON字典中的值附加到新列表?

[英]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.

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