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

如何处理Python字典值的TypeError: NoneType对象不可下标以持续执行

解决Netbox API采集站点数据时的TypeError问题

当通过Netbox API采集站点数据时,若部分站点的region字段值为None,直接执行region_name = site['region']['name']会触发TypeError: 'NoneType' object is not subscriptable,导致脚本中断。以下是修改后的代码,可避免该报错并完成所有站点数据采集:

sites_response = requests.request("GET", url_dcim_sites, headers=headers, data=payload)
sites_json = sites_response.json()
sites_results = sites_json['results']
for site in sites_results:
    id_number = site['id']
    name = site['name']
    # 处理region为None的情况,避免下标访问报错
    region_name = site['region']['name'] if site['region'] is not None else "无区域"
    # 可选:添加status字段的容错处理,防止后续出现同样问题
    status = site['status']['value'] if site['status'] is not None else "未知状态"
    sites = dict(ID=id_number, Name=name, Region=region_name, Status=status)
    format_sites = f"ID: {sites['ID']:5} | Name: {sites['Name']:20} | Region: {sites['Region']:10} | Status: {sites['Status']:5}"
    print(format_sites)

关键修改说明

  • 针对region字段:使用三元表达式先判断site['region']是否为None,非空时正常获取name值,为空时赋值默认文本(可根据需求修改为""或其他内容)
  • 额外处理status字段:同样添加空值判断,提升脚本整体健壮性,避免后续因status为None再次触发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:40:47