Ключ Alpha Vantage API возвращает недопустимую ошибку в Python, и что такое Response [200]? - PullRequest
2 голосов
/ 26 апреля 2020

Используя следующий код, я не получаю никаких данных от alphavantage , я получаю следующую ошибку API:

"Error Message": "Invalid API call. Please retry or visit the documentation (https://www.alphavantage.co/documentation/) for TIME_SERIES_DAILY." }
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, params=data)
print(response.json())

Я редактировал код, чтобы попробовать что-то еще, но я все еще получил что-то странное, на этот раз это было:

Response [200]

Вот код для этого:

import requests
import alpha_vantage

API_URL = "https://www.alphavantage.co/query"

data = {
    "function": "TIME_SERIES_DAILY",
    "symbol": "US",
    "outputsize": "compact",
    "datatype": "csv",
    "apikey": "xxx"
    }
response = requests.get(API_URL, params=data)
print(response)

Что здесь происходит? (Ключ запутан ниже xxx)

1 Ответ

1 голос
/ 29 апреля 2020

При попытке вызвать этот API возникают три проблемы.

  1. В первой попытке вы правильно вызываете API, но используете неверный тикер. NIFTY вместе с другими глобальными индексами не поддерживается Alpha Vantage API .

  2. Во второй попытке вы распечатываете объект ответа, который при преобразовании в строку выглядит точно так же, как и полученный вами вывод, Response[200] означает, что был выполнен успешный вызов API. Чтобы получить из него данные, вы должны напечатать response.text или response.json()

  3. Третий вопрос более тонкий и зависит от того, что вы пытаетесь вернуть. Если вы хотите вернуть CSV-файл, используя datatype: "csv", вы не можете использовать response.json(), поскольку формат не для json. Вместо этого вы можете использовать значение по умолчанию datatype: "json", оставив это поле пустым.

Если вы хотите получить CSV-файл, вы можете использовать print(response.text)

JSON пример

import requests
import alpha_vantage

API_URL = "https://www.alphavantage.co/query"

data = {
    "function": "TIME_SERIES_DAILY",
    "symbol": "M&M.NSE",
    "outputsize": "compact",
    "apikey": "xxx"
    }
response = requests.get(API_URL, params=data)
print(response.json())

CSV пример

import requests
import alpha_vantage

API_URL = "https://www.alphavantage.co/query"

data = {
    "function": "TIME_SERIES_DAILY",
    "symbol": "M&M.NSE",
    "outputsize": "compact",
    "datatype": "csv",
    "apikey": "xxx"
    }
response = requests.get(API_URL, params=data)
print(response.text)
...