yfinance无法获取巴西Ticker收盘价问题求助
巴西股票Ticker通过yfinance获取历史数据突然失败,提示“No price data found”
之前运行代码可正常从Excel读取巴西股票Ticker,添加.SA后缀后通过yfinance获取2024-01-29的收盘价,1月29日运行完全正常,但现在所有巴西Ticker均返回错误提示:No price data found, symbol may be delisted (1d 2024-02-01 -> 2024-02-01),代码未做任何修改。
使用的代码如下:
import openpyxl import yfinance as yf file_path ="C:\Users\carol\PycharmProjects\EXTRATOS\DOCS\Fechamento_02_02.xlsx" workbook = openpyxl.load_workbook(file_path) sheet = workbook.active data = '2024-01-29' for row in range(2, sheet.max_row + 1): ticker = sheet.cell(row=row, column=1).value if ticker: ticker_completo = f"{ticker}.SA" print(ticker_completo) ativo = yf.Ticker(ticker_completo) historico = ativo.history(start=data, end=data) preco_fechamento = historico['Close'].iloc[0] if not historico.empty else 'N/A' sheet.cell(row=row, column=2).value = preco_fechamento workbook.save(file_path)
以下是几个可以尝试的解决方向:
- 升级yfinance版本:yfinance的数据源接口经常更新,旧版本可能出现兼容问题,执行
pip install --upgrade yfinance更新到最新版再测试 - 换用
download方法替代Ticker.history:有些情况下download方法的兼容性更好,修改代码片段如下:# 替换原有的ativo和historico相关代码 historico = yf.download(ticker_completo, start=data, end=data) - 单独验证单个有效Ticker:拿一个确定未退市的巴西股票(比如
PETR4.SA)单独写测试代码,确认是否能获取数据,排除Excel中Ticker的格式问题 - 扩大日期范围测试:比如把
start设为2024-01-28,end设为2024-01-29,看是否能拿到数据,排除单日期接口限制 - 清理缓存或重启环境:yfinance可能存在本地缓存异常,重启Python环境后再尝试
内容的提问来源于stack exchange,提问作者Carolina Macedo
相关产品推荐
相关产品推荐

