问题描述
我正在尝试从 Alpha Vantage 的 python API 访问基本数据,但它不起作用。我的进口:
from alpha_vantage.timeseries import TimeSeries
from alpha_vantage.fundamentaldata import FundamentalData
TimeSeries 函数运行良好,例如以下工作正常:
ts = TimeSeries(key=av_api,output_format='pandas')
data,Metadata = ts.get_daily_adjusted(symbol='IMB',outputsize='full')
但是基本面调用不起作用。当我打电话时:
FundamentalData.get_income_statement_annual(symbol='IBM')
我收到以下错误:
TypeError: _format_wrapper() missing 1 required positional argument: 'self'
我已通读文档,教程中没有使用基础 API 调用的示例。有人可以帮忙吗?谢谢。
解决方法
我查看了获取年度损益表的来源,需要指定self,所以在这种情况下,我可以通过设置APIkey给ts正确获取。
ts = TimeSeries(key=api_key,output_format='pandas')
FundamentalData.get_income_statement_annual(ts,symbol='IBM')
fiscalDateEnding ... netIncome
date ...
1970-01-01 00:00:00.000000000 2020-12-31 ... 5590000000
1970-01-01 00:00:00.000000001 2019-12-31 ... 9431000000
1970-01-01 00:00:00.000000002 2018-12-31 ... 8728000000
1970-01-01 00:00:00.000000003 2017-12-31 ... 5753000000
1970-01-01 00:00:00.000000004 2016-12-31 ... 11872000000
[5 rows x 26 columns],'IBM')
,
想通了,如果不想每次都发送API key,可以设置一次,然后用符号:
fd = FundamentalDat(key=api_key,output_format='pandas')
然后 API 调用工作正常:
fd.get_income_statement(symbol='IBM')