1

我正在尝试将 Alpha Vantage 查询中的值传递给 pandas df,以便我可以提取某些值。

当我运行一个简单的 1 个符号查询时,我可以轻松地将信息传递到 df. 之后,我可以转置 df 并使用列提取数据。

一个例子是:

import requests
import alpha_vantage
import pandas as pd

API_URL = "https://www.alphavantage.co/query"
data = {
    "function": "GLOBAL_QUOTE",
    "symbol": "MSFT",
    "apikey": "XXX",
    }

response = requests.get(API_URL, params=data)
print(response.json())

df = pd.DataFrame(response.json())
df = df.T
print()
print()
print(df)

这将返回:

在此处输入图像描述

但是,我希望传递多个符号,但我不断收到错误消息:

{'错误消息':'无效的 API 调用。请重试或访问 GLOBAL_QUOTE 的文档 ( https://www.alphavantage.co/documentation/ )。'}

正在使用的代码是:

import requests
import alpha_vantage
import pandas as pd

df = pd.DataFrame()
API_URL = "https://www.alphavantage.co/query"

symbols= ["IBM", "MSFT", "APPL"]
for symbol in symbols:
    data = {
        "function": "GLOBAL_QUOTE",
        "symbol": symbols,
        "apikey": "XXX",
        }

    response = requests.get(API_URL, params=data)

    print(response.json())

我相信这与网站预期的格式相对应:

https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=MSFT&apikey=demo

我的问题是:如何使用符号列表将多个请求传递给 Alpha Vantage API?

4

2 回答 2

3

将“符号”更改为“符号”

"symbol": symbols,->"symbol": symbol, 现在您将整个列表作为数据传递。

import alpha_vantage
import pandas as pd

df = pd.DataFrame()
API_URL = "https://www.alphavantage.co/query"

symbols= ["IBM", "MSFT", "APPL"]
for symbol in symbols:
    data = {
        "function": "GLOBAL_QUOTE",
        "symbol": symbol,
        "apikey": "XXX",
        }

    response = requests.get(API_URL, params=data)

    print(response.json())
于 2019-12-27T22:01:30.230 回答
0

您必须使用 BATCH_STOCK_QUOTES 并使用字符串而不是数组,并且应该这样做:

import requests
import alpha_vantage
import pandas as pd

df = pd.DataFrame()
API_URL = "https://www.alphavantage.co/query"

#symbols= ["IBM", "MSFT", "LVLT"]
symbols= "IBM,MSFT,LVLT"
data = {
        "function": "BATCH_STOCK_QUOTES",
        "symbols": symbols,
        "apikey": "XXX",
        }

response = requests.get(API_URL, params=data)


print(response.json())

http://alpha.vantage.api.gallery.streamdata.io/listings/alpha-vantage/queryfunctionbatch-stock-quotes-get-openapi/

于 2019-12-22T23:54:39.900 回答