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

使用forex_python包转换EUR/USD、GBP/USD时获取错误汇率值

解决forex_python获取汇率错误的问题

问题分析

你遇到的EUR/USD汇率严重偏差(0.27 vs 实际1.07)是核心问题,GBP/USD的小幅差异可能是实时汇率波动,但前者大概率是参数使用或数据源配置问题。

修复步骤

1. 正确传递日期参数(关键)

你的代码中获取了current_date但未传入get_rate,而且错误地将日期转为字符串——get_rate的date参数需要datetime.date对象,而非字符串格式。修改如下:

from forex_python.converter import CurrencyRates
from datetime import datetime

# 获取当日date对象,而非字符串
current_date = datetime.now().date()

# 初始化并调用接口时传入日期
c = CurrencyRates()
# GBP转USD
gbp_to_usd = c.get_rate('GBP', 'USD', current_date)
# EUR转USD
eur_to_usd = c.get_rate('EUR', 'USD', current_date)

print(f"GBP to USD: {gbp_to_usd}")
print(f"EUR to USD: {eur_to_usd}")

2. 升级forex-python到最新版本

旧版本的包可能存在数据源接口失效或数据同步问题,执行以下命令升级:

pip install --upgrade forex-python

3. 切换数据源(可选)

默认的ECB数据源可能存在延迟或区域限制,你可以尝试切换到Yahoo Finance数据源:

c = CurrencyRates(source='yahoo')
# 后续调用get_rate的逻辑不变

4. 确认参数顺序

get_rate(from_curr, to_curr)的参数顺序为:第一个是基准货币(1单位该货币),第二个是目标货币(兑换后的金额)。你的参数顺序符合需求(比如get_rate('EUR', 'USD')对应1 EUR兑换的USD数量),但如果之前误写反会导致完全错误的结果,可再次确认。

额外说明

GBP/USD的1.27 vs 1.25差异属于正常的实时汇率波动,不同数据源的更新时间点不同,结果会有小幅偏差,属于正常现象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:05:17