次のコードを使用して、 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
に難読化されています)
このAPIを呼び出そうとすると、3つの問題が発生します。
最初の試みでは、APIを正しく呼び出しますが、無効なティッカーを使用しています。 NIFTY
は、他のグローバルインデックスとともに Alpha Vantage API ではサポートされていません。
2回目の試行では、レスポンスオブジェクトを出力します。これは、文字列に変換すると、受け取った出力と同じように見えます。_Response[200]
_は、API呼び出しが成功したことを意味します。そこからデータを取得するには、_response.text
_またはresponse.json()
を出力する必要があります
3番目の問題はもっと微妙で、何を返そうとしているかに依存します。 _datatype: "csv"
_を使用して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)
_