巨蟒上的菜鸟。
我目前正在使用python pandas-datareader0.7进行一些股票分析。
随着pandas-datareader 0.8的更新。它应该能够从Alpha Vantage获取历史数据。
但我真的不知道如何使用api密钥(目前使用yahoo,不需要密钥)
在documentation of pandas-datareader中,我尝试了相同的代码(使用我的API键,即在alpha vantage中注册的ABC123 ),将ALPHAVANTAGE_API_KEY替换为ABC123
import os
from datetime import datetime
import pandas_datareader.data as web
df = web.DataReader("AAPL", "av-daily", start=datetime(2017, 2, 9),end=datetime(2017, 5, 24),api_key=os.getenv('ABC123'))
print(df)我希望它能输出历史数据。
但是它说"DataReader()得到了一个意外的关键字参数'api_key'“
如何正确使用api密钥才能抓取数据?
发布于 2020-09-07 16:38:22
嘿,你一定要用熊猫数据阅读器吗?下面是我写的一个函数,可以轻松地从Alpha Vantage中提取历史股票价格。您所要做的就是插入您的符号和令牌。有关提取Alpha Vantage数据的更多功能,请随时查看我的链接:https://github.com/hklchung/StockPricePredictor/blob/master/2020/alphavantage_funcs.py
def request_stock_price_hist(symbol, token, sample = False):
if sample == False:
q_string = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={}&outputsize=full&apikey={}'
else:
q_string = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol={}&apikey={}'
print("Retrieving stock price data from Alpha Vantage (This may take a while)...")
r = requests.get(q_string.format(symbol, token))
print("Data has been successfully downloaded...")
date = []
colnames = list(range(0, 7))
df = pd.DataFrame(columns = colnames)
print("Sorting the retrieved data into a dataframe...")
for i in tqdm(r.json()['Time Series (Daily)'].keys()):
date.append(i)
row = pd.DataFrame.from_dict(r.json()['Time Series (Daily)'][i], orient='index').reset_index().T[1:]
df = pd.concat([df, row], ignore_index=True)
df.columns = ["open", "high", "low", "close", "adjusted close", "volume", "dividend amount", "split cf"]
df['date'] = date
return df使用上述函数的方法如下所示:
df = request_stock_price_hist('IBM', 'REPLACE_YOUR_TOKEN')
df.to_csv('output.csv')发布于 2019-10-21 22:25:58
代码os.getenv('ALPHAVANTAGE_API_KEY')告诉计算机获取名为'ALPHA_VANTAGE_API_KEY‘的环境变量
短期的修复方法是替换代码:
来自:api_key=os.getenv('ABC123')
收件人:api_key='ABC123'
它们默认使用环境变量的原因是,不将密钥直接存储在代码中会更安全。下面是关于更多信息的link,但设置它的最简单方法是运行:
cd
echo "export ALPHAVANTAGE_API_KEY=\"ABC123\"" >> .bash_profile当然,将ABC123替换为您的实际密钥。然后重新启动shell/kernal。
https://stackoverflow.com/questions/58460468
复制相似问题