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

使用datetime函数获取股票API数据时遇KeyError问题求助

问题:使用datetime获取股票数据触发KeyError

我尝试用datetime函数而非硬编码日期来获取股票数据,结果出现了KeyError错误,求帮忙解决!

股票数据示例

'Time Series (Daily)': {'2022-09-30': {'1. open': '266.1450', '2........}

相关代码

from datetime import date
from datetime import timedelta

yesterday_close = stock_data['Time Series (Daily)'][yesterday]['4. close']

报错信息

Traceback (most recent call last):
    yesterday_close = stock_data['Time Series (Daily)'][yesterday]['4. close']
KeyError: datetime.date(2022, 9, 30)

问题根源

股票数据中「Time Series (Daily)」下的日期键是字符串格式(例如'2022-09-30'),但代码里使用的是datetime.date对象,两者类型不匹配,导致字典查找失败触发KeyError。

解决办法

把datetime.date对象转换成和数据中一致的YYYY-MM-DD格式字符串即可,用strftime()方法实现:

from datetime import date, timedelta

# 将date对象转为匹配格式的字符串
yesterday_str = yesterday.strftime('%Y-%m-%d')
# 用字符串键查找数据
yesterday_close = stock_data['Time Series (Daily)'][yesterday_str]['4. close']

额外提醒:如果目标日期是周末或节假日,股票数据可能不存在,建议增加存在性判断避免再次报错:

yesterday_str = yesterday.strftime('%Y-%m-%d')
daily_series = stock_data['Time Series (Daily)']

if yesterday_str in daily_series:
    yesterday_close = daily_series[yesterday_str]['4. close']
else:
    print(f"未找到{yesterday_str}的股票数据")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:25:25