如何直接从Python使用Alpha Vantage API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何直接从Python使用Alpha Vantage API相关的知识,希望对你有一定的参考价值。
我一直在使用Romel Torres的alpha_vantage包,但是也希望直接使用来自python的Alpha Vantage API(提供更多功能)和包请求,如CALL with CURL an API through Python所述:
import requests
import alpha_vantage
API_URL = "https://www.alphavantage.co/query"
data = {
"function": "TIME_SERIES_DAILY",
"symbol": "NIFTY",
"outputsize": "compact",
"datatype": "csv"
"apikey": "XXX",
}
response = requests.get(API_URL, data)
print(response.json())[/code]
但是我在返回的dict中收到以下错误消息:
{'错误消息':'无效的API调用。请重试或访问TIME_SERIES_DAILY文档(https://www.alphavantage.co/documentation/)。'}
而使用requests.post(),结果是:
response = requests.post(API_URL, data)
{'detail': 'Method "POST" not allowed.'}
我已经重新检查了文档并遵循了所有必需的API参数。感谢我在这里可能缺少的一些帮助以及正确的呼叫和/或任何其他替代方法。谢谢
答案
提示是错误的。将您的请求方法从post
更改为get
:
response = requests.get(API_URL, params=data)
并使用作为Alpha Vantage数据存在的股票代码。 NIFTY
不是股票 - 它是一个指数。如果您使用MSFT
尝试代码,它将起作用。
另一答案
First
您正在使用'csv'数据类型。
“datatype”:“csv”
但您正在尝试以JSON格式打印
print(response.json())
Second
尝试使用建议的get方法
另一答案
import requests
import alpha_vantage
import json
API_URL = "https://www.alphavantage.co/query"
symbols = ['QCOM',"INTC","PDD"]
for symbol in symbols:
data = { "function": "TIME_SERIES_INTRADAY",
"symbol": symbol,
"interval" : "60min",
"datatype": "json",
"apikey": "XXX" }
response = requests.get(API_URL, data)
data = response.json()
print(symbol)
a = (data['Time Series (60min)'])
keys = (a.keys())
for key in keys:
print(a[key]['2. high'] + " " + a[key]['5. volume'])
以上是关于如何直接从Python使用Alpha Vantage API的主要内容,如果未能解决你的问题,请参考以下文章