You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解析Wi-Fi控制器API JSON时获取id和name键的问题

解决方法:提取嵌套在list数组中的id和name

你现在的问题很明确——接口返回的顶层字典里确实没有id和name,这两个字段是嵌套在list数组的每个子元素里的。你之前直接用jsonResponse.get('id')肯定拿不到结果,因为它根本不在顶层结构里。

给你修改后的代码,直接提取你需要的信息:

import requests

# Method that retrieves all zones
def getZones():
    r = requests.get("your_url_here", verify=False, cookies=cookie)
    jsonResponse = r.json()
    
    # 先获取list数组,默认空列表避免接口无返回时报错
    zones = jsonResponse.get('list', [])
    
    # 遍历每个zone元素,提取id和name
    zone_info_list = []
    for zone in zones:
        # 用get方法可以避免某个元素缺少id/name时抛出KeyError
        zone_info = {
            'id': zone.get('id'),
            'name': zone.get('name')
        }
        zone_info_list.append(zone_info)
    
    # 打印验证结果
    print("提取到的区域信息:")
    for info in zone_info_list:
        print(f"ID: {info['id']}, Name: {info['name']}")
    
    return zone_info_list

如果你喜欢更简洁的写法,用列表推导式一行就能搞定:

zone_info_list = [{'id': z.get('id'), 'name': z.get('name')} for z in jsonResponse.get('list', [])]

关键说明:

  • 你不需要“手动指定dict的键”,而是要进入嵌套的list结构去提取子元素里的键
  • 用get()方法替代直接索引(比如zone['id']),可以避免当某个zone元素缺少id或name字段时程序崩溃
  • 最终返回的zone_info_list就是一个只包含你需要的id和name的字典列表,方便后续处理

内容的提问来源于stack exchange,提问作者kaspertje100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:59:49