通过Alpha Vantage api(Python)的货币历史日内数据?

2024-10-05 13:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从alpha vantage下载过去6个月美元/欧元的历史盘中数据

下面是我试图执行的代码

import pandas as pd
from alpha_vantage.timeseries import 
api = "######"
ts = TimeSeries(key=####,output_format = "pandas")
data,metadata = ts.get_intraday(symbol = "USD/CAD",interval= "1min" , outputsize = "full")
print(data)

这是一个错误

ValueError: Invalid API call. Please retry or visit the documentation (https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=USD/documentation/) for TIME_SERIES_INTRADAY.

这是什么原因呢


Tags: 数据代码importalphapandasdatatimedocumentation
2条回答

将代码更改为:

import pandas as pd
from alpha_vantage.timeseries import TimeSeries
api_key = "XXXX"
ts = TimeSeries(key = api_key,output_format = "pandas")
data, metadata = ts.get_intraday(symbol = "USDCAD",interval= "1min" , outputsize = "full")
print(data)

以下是为解决此问题所做的编辑

  1. 您的代码示例中有一些语法错误
  2. “#”字符串不能作为API键中的参数使用。对于测试,请使用类似“XXXX”的内容
  3. 符号必须是“USDCAD”而不是“USD/CAD”
  4. 可选,但首选:您应该使用from alpha_vantage.foreignexchange import ForeignExchange包来获取货币对,而不是TimeSeries对象

根据TIME_SERIES_INTRADAY的文档和您的错误消息,我有点明显地感觉到您的API无效。如果您看到您的命令,那么API实际上丢失了,并且根据documentation,它是必需的

尝试在最后一行(下面)添加您的API令牌/密钥,至少应解决上述问题

import pandas as pd
from alpha_vantage.timeseries import 
api = "######"
ts = TimeSeries(key=####,output_format = "pandas")
data,metadata = ts.get_intraday(function=TIME_SERIES_INTRADAY, symbol = "USD/CAD",interval= "1min" , outputsize = "full", apikey="Please fill your api key here")

希望能有帮助

=================================================================================================

阅读alphavantage的源代码后进行编辑。

所以我检查了代码。它没有什么错,就像ApKIKE一样。因为在前一行中,您实际调用了api,您已经实例化了TimeSeries类,并且在那时您已经给出了api键。因此,不再需要它了

我可以在我这边重复你的错误。在遍历代码之后,我意识到您传递的货币可能是错误的。它不应该是USD/CAD,而应该是USD。如果您希望以美元/加元的价格购买。。你必须说USDCAD。当你说currency=“USD/CAD”时。。最有可能的是,您形成的API是错误的,并且由于“/”而提前终止

下面是编辑后的代码。我还编辑了你的原始帖子,在第二行,导入后,我添加了TimeSeries。我希望这是对的。如果没有,请拒绝编辑

import pandas as pd
from alpha_vantage.timeseries import TimeSeries
api = "XXXXXXXXXXXXX"
ts = TimeSeries(key=api,output_format = "pandas")
data,metadata = ts.get_intraday(symbol = "USD",interval= "1min" , outputsize = "full")
print(data)
data,metadata = ts.get_intraday(symbol = "USDCAD",interval= "1min" , outputsize = "full")
print(data)

我希望这有帮助

相关问题 更多 >

    热门问题