5akura1 2022-05-20 00:28 采纳率: 100%
浏览 57
已结题

python在api返回了一段json想要取出‘id'下的值并输出应该如何遍历?

api返回了一段json想要取出‘id'下的值并输出应该如何遍历?python只会一点简单的语法

如下图的“songs”中的"id": 1933232289
在json中出现了多次,想遍历输出应该如何操作,

问题相关代码,请勿粘贴截图
"songs": [
        {
            "name": "slow ride",
            "id": 1933232289,
            "pst": 0,
            "t": 0,
            "ar": [
                {
                    "id": 12919519,
                    "name": "Matt吕彦良",
                    "tns": [],
                    "alias": []
                },
                {
                    "id": 10473,
                    "name": "袁娅维TIA RAY",
                    "tns": [],
                    "alias": []
                }
            ],
        },
        {
            "name": "是我",
            "id": 1432632134,
            "pst": 0,
            "t": 0,
            "ar": [
                {
                    "id": 33913095,
                    "name": "KIND",
                    "tns": [],
                    "alias": []
                }
            ],
        },

  • 写回答

1条回答 默认 最新

  • 广大菜鸟 2022-05-20 01:15
    关注
    
    import json
    
    json_response = """
    {"songs" : [
            {
                "name": "slow ride",
                "id": 1933232289,
                "pst": 0,
                "t": 0,
                "ar": [
                    {
                        "id": 12919519,
                        "name": "Matt吕彦良",
                        "tns": [],
                        "alias": []
                    },
                    {
                        "id": 10473,
                        "name": "袁娅维TIA RAY",
                        "tns": [],
                        "alias": []
                    }
                ]
            },
            {
                "name": "是我",
                "id": 1432632134,
                "pst": 0,
                "t": 0,
                "ar": [
                    {
                        "id": 33913095,
                        "name": "KIND",
                        "tns": [],
                        "alias": []
                    }
                ]
            }
    ]}
    """
    dict_json = json.loads(json_response)
    ids = []
    
    
    def deep(dct):
        if type(dct) == dict:
            for k, v in dct.items():
                if type(v) == dict or type(v) == list:
                    deep(v)
                elif k == 'id':
                    ids.append(v)
        elif type(dct) == list:
            for item in dct:
                deep(item)
    
    
    deep(dict_json)
    for item in ids:
        print(item)
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM