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

2024-06-10 01:22:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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\u列表打印出来,如下所示:

[arn:aws:elb:xxxxxxx:targetgroup1, arn:aws:elb:xxxxxxx:targetgroup2, arn:aws:elb:xxxxxxx:targetgroup3]

Tags: 文件importawsjsontarget列表dataitems
2条回答

如果您可以发布您试图从中获取数据的文件,则会更好,但这部分:

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)

你从'data'中获取数据并将其添加到项目中,但你从未实际使用过它。 试试看。你知道吗

将代码更改为:

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代码更简洁。不过,我更喜欢一个更冗长的风格,更容易阅读。你知道吗

另外请注意,此代码检查密钥是否存在,以便代码不会因缺少数据而进行堆栈转储。你知道吗

相关问题 更多 >