You need to enable JavaScript to run this app. Python解析新冠疫苗API响应出现KeyError: 'date'错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python解析新冠疫苗API响应出现KeyError: 'date'错误如何解决

问题排查

KeyError: 'date'错误说明你要取的date字段不存在于centers数组的单个元素属性中,根据你描述的接口嵌套结构,date属于centers下嵌套的sessions数组的子字段,需要多遍历一层sessions才能获取。

修复后代码

import json

dataJ = json.loads(r.text)
# 直接遍历centers数组更简洁,不需要用下标取值
for center in dataJ['centers']:
    # 先提取接种点基础字段
    center_name = center['name']
    address = center['address']
    state = center['state_name']
    district = center['district_name']
    pin = center['pincode']
    # 遍历当前接种点下的所有预约场次
    # 用get方法加空数组默认值,避免sessions字段缺失时报错
    for session in center.get('sessions', []):
        date = session['date']
        # 还可以按需提取session下的其他字段,比如疫苗类型、剩余剂量等
        # available = session['available_capacity']
        # vaccine_type = session['vaccine']
        print(f"{center_name} - {address} - {state} - {district} - {pin} - {date}")

补充优化建议

  • 如果需要处理字段可能缺失的情况,所有字段取值都可以用dict.get(字段名, 默认值)的写法,比如center.get('address', '地址未公示'),避免偶发的字段缺失导致程序中断
  • 单个接种点可能存在多个预约场次,遍历sessions后会每个场次对应输出一条记录,符合数据的一对多对应关系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 03:24:04