You need to enable JavaScript to run this app. 调用get_quote_yahoo批量获取股票市值时报'Ticker'对象不可迭代TypeError
优惠活动
大模型
产品
解决方案
定价
更多

调用get_quote_yahoo批量获取股票市值时报'Ticker'对象不可迭代TypeError

问题根因定位
  • 触发TypeError: 'Ticker' object is not iterable的核心原因:pdr.get_quote_yahoo()的入参要求是可迭代的股票代码字符串集合,原代码传入了yf.Ticker生成的实例对象,类型不匹配导致报错。
  • 数据逻辑缺陷:原循环内仅临时赋值market_cap变量,没有把每只股票的代码、对应市值存储到统一容器中,后续导出时market_cap只会保留最后一次循环的临时值,无法形成完整数据集。
  • 表格构造错误:pd.DataFrame的参数匹配逻辑出错,原代码将tickers和market_cap分别作为第一、第二个位置参数传入,不符合pandas构造二维表的语法规则,生成的表格结构完全不符合预期。
可直接运行的修正实现
import pandas as pd
import pandas_datareader as pdr
import yfinance as yf
import get_tickers as gt

# 获取筛选后的目标股票列表
tickers = gt.get_tickers_filtered(mktcap_min=500, mktcap_max=10000)
print(f"待采集股票总数:{len(tickers)}")

# 初始化统计变量与结构化结果存储容器
Amount_of_API_Calls = 0 
Stock_Failure = 0
Stocks_Not_Imported = 0
result_dict = {
    "Ticker": [],
    "Market Cap": []
}

i = 0
while (i < len(tickers)) and (Amount_of_API_Calls < 1900):
    try:
        stock_code = str(tickers[i])
        # 直接传入股票代码字符串,避免传入Ticker实例触发类型错误
        quote_data = pdr.get_quote_yahoo(stock_code)
        market_cap = quote_data['marketCap'].iloc[0]
        # 将当前采集结果存入结构化容器,避免临时变量被覆盖
        result_dict["Ticker"].append(stock_code)
        result_dict["Market Cap"].append(market_cap)

        Amount_of_API_Calls += 1
        Stock_Failure = 0
        i += 1
    except ValueError:
        print("雅虎财经后端接口临时错误,正在重试")
        if Stock_Failure > 3:
            i += 1
            Stocks_Not_Imported += 1
        Amount_of_API_Calls += 1
        Stock_Failure += 1

# 构造最终导出用DataFrame
export_df = pd.DataFrame(result_dict)
print(f"成功采集股票数量:{len(export_df)}")
print(export_df)

# 导出为Excel文件,可直接供其他项目读取使用
export_df.to_excel("target_stock_market_cap.xlsx", index=False)
核心调整说明
  • 移除了冗余的yf.Ticker实例创建步骤,直接将标准化的股票代码字符串传入pdr.get_quote_yahoo,彻底解决入参不匹配引发的迭代错误。
  • 新增键值对形式的结果存储字典,替代原代码中被循环反复覆盖的临时单值变量,确保每只股票的采集结果都被完整留存。
  • 修正DataFrame构造逻辑,不再按照错误的位置参数传入两个独立列表,直接将同维度的结构化字典传入即可生成符合要求的两列表格。
  • 补全Excel导出逻辑,同时保留了原代码的API调用次数限制、接口错误重试、失败统计的原有业务逻辑,没有额外改动原有流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 13:15:04