Вы превышаете лимит API стандартным ключом. Стандартный ключ допускает 5 вызовов API / минуту и 500 / день, поэтому иногда он работает.
Вы можете видеть, что если вы вставите свой URL-адрес в браузер и обновите sh его 5–10 раз за 60 секунд, вы вручную достигнете предела.
Вы можете:
- Обновить до премиум-ключа.
- Распределить вызовы API (подождите 60 секунд после запуска этого запустить его снова)
Замечание о конфиденциальности, которое также может относиться к достижению вами порогового значения API. Вы публично поделились своим ключом API.
- Поместите ключ API в переменную окружения
- При публикации используйте "XXXX" или что-то подобное, чтобы заменить ключ API.
Если вы публикуете свой ключ API, его могут использовать другие, и это означает, что кто-то другой может использовать ваши 5 вызовов API в минуту.
Пример:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os
symbols = ["AAPL", "GLD", "TSLA", "GBL", "GOOGL"]
def compare_security(symbols):
start_date = "01-01-2019"
end_date = "01-12-2020"
dates = pd.date_range(start_date, end_date)
df1 = pd.DataFrame(index=dates)
df_SPY = pd.read_csv(
"https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=SPY&apikey={}&datatype=csv".format(
os.getenv("ALPHAVANTAGE_API_KEY")),
index_col="timestamp", usecols=["timestamp", "adjusted_close"], parse_dates=True, na_values=['nan'])
df_SPY = df_SPY.rename(columns={"adjusted_close": "SPY"})
df1 = df1.join(df_SPY, how="inner")
for symbol in symbols:
df_temp = pd.read_csv("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={}&apikey={}&datatype=csv".format(symbol, os.getenv("ALPHAVANTAGE_API_KEY")),
index_col="timestamp", usecols=["timestamp", "adjusted_close"], parse_dates=True, na_values=['nan'])
df_temp = df_temp.rename(columns={"adjusted_close": symbol})
df1 = df1.join(df_temp)
return df1
def test_run():
df = compare_security(symbols)
print(df)
df.plot()
plt.title(symbols)
plt.show()
if __name__ == "__main__":
test_run()