我想使用Forex-python模块根据特定日期(根据数据框中的日期为上个月的最后一天)将各种货币的金额转换为特定货币(“DKK”)
这是我的代码的结构:
pd.DataFrame(data={'Date':['2017-4-15','2017-6-12','2017-2-25'],'Amount':[5,10,15],'Currency':['USD','SEK','EUR']})
def convert_rates(amount,currency,PstngDate):
PstngDate = datetime.strptime(PstngDate, '%Y-%m-%d')
if currency != 'DKK':
return c.convert(base_cur=currency,dest_cur='DKK',amount=amount \
,date_obj=PstngDate - timedelta(PstngDate.day))
else:
return amount
并显示包含转换后金额的新列:
df['Amount, DKK'] = np.vectorize(convert_rates)(
amount=df['Amount'],
currency=df['Currency'],
PstngDate=df['Date']
)
我得到RatesNotAvailableError“货币汇率源未就绪”任何想法是什么可能导致这一点?它以前曾与少量的数据,但我有许多行在我真实的df...
2条答案
按热度按时间cuxqih211#
我在convert.py(forex-python的一部分)中插入了一个小字语句来调试这个问题。
目前我收到:
请阅读以下有关HTTP 502错误的主题:
In HTTP 502, what is meant by an invalid response?
https://www.lifewire.com/502-bad-gateway-error-explained-2622939
这些错误与您的特定设置完全无关,这意味着您可以在任何浏览器、任何操作系统和任何设备上看到这些错误。
502表示此API用于向我们提供所需数据的基础架构目前存在问题。由于我自己也需要这些数据,我将继续关注此问题,并不断更新我在此网站上的帖子。
Github上已经有一个关于这个问题的问题:
https://github.com/MicroPyramid/forex-python/issues/100
hiz5n14c2#
来源:www.example.comhttps://github.com/MicroPyramid/forex-python/blob/80290a2b9150515e15139e1a069f74d220c6b67e/forex_python/converter.py#L73
您的错误意味着图书馆收到了对您请求的非200响应代码。这可能意味着站点已关闭,或者由于您不断向其发送请求而暂时阻止了您。
尝试将对
c.convert
的调用替换为如下内容:或者更好的是,使用像backoff这样的库来为您执行重试:
https://pypi.python.org/pypi/backoff/1.3.1