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

Python中Yfinance API获取外汇汇率失效问题排查请求

Yfinance获取外汇汇率报401错误的排查与修复

错误原因

  • Yahoo Finance公开API接口权限调整,原直接请求/v7/finance/quote的方式现在需要身份验证,未携带验证信息的请求会返回401 Unauthorized。
  • 旧版本yfinance未适配Yahoo的新验证机制,导致调用.info['regularMarketPrice']时触发未授权错误。

修复方案

1. 升级yfinance到最新版本

新版本yfinance已针对Yahoo的验证逻辑做了适配,执行以下命令升级:

pip install --upgrade yfinance

2. 替换汇率获取方式

避免直接使用.info字典获取价格,改用新版本支持的fast_info或download方法,示例代码如下:

import yfinance as yf
import pandas as pd

base_currency = 'GBP'
currencies = df['Currency'].unique().tolist()

fx_data = {}
for currency in currencies:
    ticker = f"{currency}{base_currency}=X"
    # 优先使用fast_info获取实时价格(新版本支持)
    try:
        fx_rate = yf.Ticker(ticker).fast_info['lastPrice']
        fx_data[currency] = fx_rate
    except Exception as e:
        # 备选方案:通过download获取单日收盘价
        data = yf.download(ticker, period='1d', progress=False)
        if not data.empty:
            fx_rate = data['Close'].iloc[-1]
            fx_data[currency] = fx_rate
        else:
            fx_data[currency] = None  # 标记获取失败的币种

注意事项

  • 升级后可通过pip show yfinance确认版本,推荐使用0.2.30及以上版本。
  • 部分小众外汇对可能无实时数据,添加异常处理可避免程序崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:22:17