为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

饮歌长啸 2021-11-02 20:27:51
我有一个包含所有 AWS 目标组的 .json 文件。这是使用aws elbv2 describe-target-groups. 我想从此文件中提取每个 TargetGroupArn 并将其存储到 Python 列表中。使用我当前的代码,我没有输出。我可以确认字典中有数据,但我尝试创建的列表中没有附加任何内容。import jsonfrom pprint import pprintwith 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]
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

将您的代码更改为:


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


另请注意,此代码检查键是否存在,以便代码不会因丢失数据而进行堆栈转储。


查看完整回答
反对 回复 2021-11-02
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

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


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)

你从“数据”获得数据并将其添加到项目,但你从来没有真正使用过。试一试。


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号