奇怪的'货币汇率来源没有准备好'FORX_PYTON错误

Strange #39;Currency Rates source not ready#39; forex_python error(奇怪的#39;货币汇率来源没有准备好#39;FORX_PYTON错误)
本文介绍了奇怪的'货币汇率来源没有准备好'FORX_PYTON错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正试图通过python理解外汇API。我在下面发布的代码在周五对我起作用,我收到了所有日期的转换率。奇怪的是,当我今天运行代码时,出于某种原因,它显示

汇率来源未准备好。

为什么会发生这种情况?

from forex_python.converter import CurrencyRates
import pandas as pd
c = CurrencyRates()
from forex_python.converter import CurrencyRates
c = CurrencyRates()


df = pd.DataFrame(pd.date_range(start='8/16/2021 10:00:00', end='8/22/2021 11:00:00', freq='600min'), columns=['DateTime'])

def get_rate(x):
    try:
        op = c.get_rate('CAD', 'USD', x)
    except Exception as re:
        print(re)
        op=None
    return op

df['Rate'] = df['DateTime'].apply(get_rate)

Currency Rates Source Not Ready
Currency Rates Source Not Ready

df
Out[17]: 
              DateTime      Rate
0  2021-08-16 10:00:00  0.796374
1  2021-08-16 20:00:00  0.796374
2  2021-08-17 06:00:00  0.793031
3  2021-08-17 16:00:00  0.793031
4  2021-08-18 02:00:00  0.792469
5  2021-08-18 12:00:00  0.792469
6  2021-08-18 22:00:00  0.792469
7  2021-08-19 08:00:00  0.783967
8  2021-08-19 18:00:00  0.783967
9  2021-08-20 04:00:00  0.774504
10 2021-08-20 14:00:00  0.774504
11 2021-08-21 00:00:00       NaN
12 2021-08-21 10:00:00       NaN
13 2021-08-21 20:00:00       NaN
14 2021-08-22 06:00:00       NaN

如何解决此问题?有没有办法在自己进行调用时忽略NaN?我觉得这个API只给出星期一到星期五上午10点到下午5点的结果。那么有没有办法直接得到这些结果呢?

推荐答案

python_forex SDK使用The Forex Api,从The European Central Bank获取数据。欧洲央行在每个工作日(TARGET closing days除外)每天更新一次利率(大约16:00 CET)。这意味着您只能在工作日获得一个币种汇率的值。

要获得这些费率,您可以

df = pd.DataFrame(pd.date_range(start='8/16/2021 10:00:00', end='8/22/2021 11:00:00', freq='B'), columns=['DateTime'])

其中freq="B"表示仅工作日(source)。在运行其余代码时,这将导致:

             DateTime      Rate
0 2021-08-16 10:00:00  0.796374
1 2021-08-17 10:00:00  0.793031
2 2021-08-18 10:00:00  0.792469
3 2021-08-19 10:00:00  0.783967
4 2021-08-20 10:00:00  0.774504

您也可以在营业时间使用freq="BH",但不会获得不同的费率。

还请注意,在python_forex SDK中,他们说您应该使用1.6版以避免RatesNotAvailableError。

我创建的包

Nb!我不打算维护它。

Github link

安装:

pip install easy-exchange-rates

用法:

from easy_exchange_rates import API
api = API()
time_series = api.get_exchange_rates(
  base_currency="EUR", 
  start_date="2021-01-01", 
  end_date="2021-08-13", 
  targets=["USD","CAD"]
)
data_frame = api.to_dataframe(time_series)
print(data_frame.head(5))
>>>
                 CAD       USD
2021-01-01  1.549988  1.217582
2021-01-02  1.544791  1.213500
2021-01-03  1.557791  1.223409
2021-01-04  1.566076  1.225061
2021-01-05  1.558553  1.229681

这篇关于奇怪的'货币汇率来源没有准备好'FORX_PYTON错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)