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

如何将yfinance下载的股票数据以股票代码为键存入字典?

解决yfinance股票数据字典按代码访问的问题

正确代码实现

直接遍历股票代码列表,用代码本身作为字典的键即可,不需要多余的索引操作:

import yfinance as yf

# 你的股票代码数组
ticker_list_1 = ['A', 'AAP', 'AAPL', 'ABB', 'ABBV', 'ABC', 'ABEV', 'ABMD', 'ABNB']
xrz_data = {}

# 遍历每个股票代码,用代码作为键存入字典
for ticker in ticker_list_1:
    data = yf.download(ticker, start="2019-01-01", end="2022-10-20")
    xrz_data[ticker] = data

如果需要跟踪下载进度(比如打印第几个),可以保留enumerate但依然用代码当键:

import yfinance as yf

ticker_list_1 = ['A', 'AAP', 'AAPL', 'ABB', 'ABBV', 'ABC', 'ABEV', 'ABMD', 'ABNB']
xrz_data = {}

for idx, ticker in enumerate(ticker_list_1):
    data = yf.download(ticker, start="2019-01-01", end="2022-10-20")
    xrz_data[ticker] = data
    # 可选:打印进度
    # print(f"已完成第{idx+1}只股票:{ticker}")

原代码及尝试的问题说明

  1. 原代码用enumerate的索引i作为字典键,导致只能通过数字访问,这是你不需要的行为。
  2. 原代码中用len作为循环变量名,这会覆盖Python内置的len()函数,属于不良编码习惯,建议改用ticker这类清晰的变量名。
  3. 你之前尝试的xrz_data[i].values = data完全错误:此时字典xrz_data中还没有键为i的条目,直接访问会触发KeyError;而且values是字典的内置属性,不能这么赋值。

验证

下载完成后,直接通过股票代码访问数据,比如:

# 获取苹果股票数据
aapl_data = xrz_data['AAPL']
print(aapl_data.head())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:20:22