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

Python 如何将JSON字典中的值附加到新列表中?,python,Python,我有一个所有AWS目标组的.json文件。这是使用aws elbv2描述目标群体创建的。我想从这个文件中提取每个TargetGroupArn,并将其存储到Python列表中 用我当前的代码,我没有得到任何输出。我可以确认字典中有数据,但是没有任何内容被添加到我试图创建的列表中 import json from pprint import pprint with open('target_groups.json') as f: data = json.load(f) items = d

我有一个所有AWS目标组的.json文件。这是使用aws elbv2描述目标群体创建的。我想从这个文件中提取每个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_列表打印出来,如下所示:

[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代码更加简洁。然而,我更喜欢一种更冗长、更容易阅读的风格


还请注意,此代码检查密钥是否存在,以便代码不会因缺少数据而堆叠转储。

将代码更改为:

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代码更加简洁。然而,我更喜欢一种更冗长、更容易阅读的风格


还请注意,此代码检查密钥是否存在,以便代码不会堆叠转储丢失的数据。

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

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)
您从“数据”中获取数据并将其添加到项目中,但您从未实际使用过它。
试一试。

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

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)
您从“数据”中获取数据并将其添加到项目中,但您从未实际使用过它。
试一试。

你能提供一个.json文件的片段,以便我们可以复制你所做的事情吗?我删除了AWS标记,因为这个问题与AWS不太相关。你能提供一个.json文件的片段,以便我们可以复制你所做的事情吗?我删除了AWS标记,因为这个问题与AWS不太相关。