使用yfinance API获取行业市值时遇AttributeError问题求助
问题分析与解决
- 你碰到的
AttributeError确实是因为yfinance模块本身没有Sector和Industry这两个类,不管是当前稳定版还是最新开发版,都没提供这两个直接调用的接口。 - 大概率是你参考的文档有误——可能是过时的旧版文档、第三方衍生库的文档,或是混淆了其他金融API的用法。
替代方案:获取行业市值的正确方式
如果要通过yfinance获取行业相关市值数据,可以试试这两种思路:
- 通过行业ETF获取整体市值
很多行业都有对应的跟踪ETF,比如科技行业的XLK,直接获取该ETF的市值即可:import yfinance as yf tech_etf = yf.Ticker("XLK") # 提取市值数据 market_cap = tech_etf.info.get('marketCap') print(f"科技行业ETF市值:{market_cap}") - 筛选行业成分股汇总市值
先拿到目标行业的成分股列表,再逐个获取市值后求和(注意处理数据缺失的情况):import yfinance as yf # 示例:获取标普500信息技术行业成分股总市值 sp500 = yf.Ticker("^GSPC") # 从成分股中筛选出信息技术行业的股票 tech_stocks = [ticker for ticker, data in sp500.components.items() if data['GICS Sector'] == 'Information Technology'] total_cap = 0 for ticker in tech_stocks: try: stock = yf.Ticker(ticker) cap = stock.info.get('marketCap') if cap: total_cap += cap except Exception as e: print(f"获取{ticker}数据失败:{e}") print(f"标普500信息技术行业总市值:{total_cap}")
内容的提问来源于stack exchange,提问作者SinonCuriosus
相关产品推荐
相关产品推荐

