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

我有一个包含所有 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]


饮歌长啸
浏览 186回答 2
2回答

杨__羊羊

将您的代码更改为:import jsonfrom pprint import pprintwith 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 代码更简洁。然而,我更喜欢更容易阅读的更冗长的风格。另请注意,此代码检查键是否存在,以便代码不会因丢失数据而进行堆栈转储。

德玛西亚99

如果您可以发布您试图从中获取数据的文件会更好,但这部分: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)你从“数据”获得数据并将其添加到项目,但你从来没有真正使用过。试一试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python