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

如何用Python获取指定日期范围内按分钟间隔的历史外汇汇率?

实现方案

你只需要按分钟生成目标时间区间的所有时间点,挨个查询对应汇率后格式化输出即可,完整实现代码如下:

from forex_python.converter import CurrencyRates
import datetime
import time

# 初始化汇率转换器
c = CurrencyRates()
# 自定义配置:货币对、时间范围
base_currency = "CAD"
target_currency = "USD"
currency_pair = f"{base_currency} - {target_currency}"
# 注意datetime参数顺序为 年、月、日、时、分(24小时制)
start_dt = datetime.datetime(2007, 8, 1, 13, 15)
end_dt = datetime.datetime(2007, 8, 1, 13, 20)

# 打印表头
print(f"{'Rate':<8}{'DateTime':<25}{'Currency'}")

current_dt = start_dt
while current_dt <= end_dt:
    try:
        # 获取对应时间点汇率
        rate = c.get_rate(base_currency, target_currency, current_dt)
        # 格式化时间为 月-日-年 时:分pm/am 格式
        formatted_dt = current_dt.strftime("%m-%d-%Y %I:%M%p").lower()
        # 保留3位小数输出,和示例格式对齐
        print(f"{rate:<8.3f}{formatted_dt:<25}{currency_pair}")
    except Exception:
        # 无对应时间汇率时返回N/A占位
        formatted_dt = current_dt.strftime("%m-%d-%Y %I:%M%p").lower()
        print(f"{'N/A':<8}{formatted_dt:<25}{currency_pair}")
    # 时间步进1分钟
    current_dt += datetime.timedelta(minutes=1)
    # 大时间范围查询可开启下方延时,避免请求频繁被限制
    # time.sleep(0.1)

补充说明

  • 你可以自行修改代码里的货币对、起始/结束时间参数适配自己的需求,时间格式化的规则也可以根据需要调整strftime的参数。
  • 如果需要把结果导出为正式表格文件,可以引入pandas库,把所有查询结果存为列表后转成DataFrame,调用to_csv()或to_excel()方法即可导出对应格式的文件。
  • forex-python的数据源对太久远的历史数据覆盖有限,如果查询非常早期的时间点返回N/A属于正常情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:36:04