2

我正在尝试从 Alpha Vantage 收集股票数据,但我一直收到错误消息?我正在使用 Alpha Vantage 来提取数据。我的代码如下:

import pandas_datareader.data as web
import pandas as pd
import numpy as np
import datetime

start = datetime.datetime(2006,1,1)
end = datetime.datetime(2016,1,1)
BAC = web.DataReader('BAC', 'av-daily', start, end,api_key='****')
C = web.DataReader('C', 'av-daily', start, end,api_key='****')
GS = web.DataReader('GS', 'av-daily', start, end,api_key='****')
JPM = web.DataReader('JPM', 'av-daily', start, end,api_key='****')
MS = web.DataReader('MS', 'av-daily', start, end,api_key='****')
WFC = web.DataReader('WFC', 'av-daily', start, end,api_key='****')

其中星号表示我来自 Alpha Vantage 的 API 密钥。当我运行它时,我收到以下错误:

KeyError                                  Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py in _read_lines(self, out)
     71         try:
---> 72             df = pd.DataFrame.from_dict(out[self.data_key], orient="index")
     73         except KeyError:

KeyError: 'Time Series (Daily)'

During handling of the above exception, another exception occurred:

RemoteDataError                           Traceback (most recent call last)
<ipython-input-37-4c470c35e03d> in <module>
      3 BAC = web.DataReader('BAC', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      4 C = web.DataReader('C', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
----> 5 GS = web.DataReader('GS', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      6 JPM = web.DataReader('JPM', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      7 MS = web.DataReader('MS', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')

~\Anaconda3\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    206                 else:
    207                     kwargs[new_arg_name] = new_arg_value
--> 208             return func(*args, **kwargs)
    209 
    210         return wrapper

~\Anaconda3\lib\site-packages\pandas_datareader\data.py in DataReader(name, data_source, start, end, retry_count, pause, session, api_key)
    577             pause=pause,
    578             session=session,
--> 579             api_key=api_key,
    580         ).read()
    581 

~\Anaconda3\lib\site-packages\pandas_datareader\base.py in read(self)
     98         """Read data from connector"""
     99         try:
--> 100             return self._read_one_data(self.url, self.params)
    101         finally:
    102             self.close()

~\Anaconda3\lib\site-packages\pandas_datareader\base.py in _read_one_data(self, url, params)
    110         else:
    111             raise NotImplementedError(self._format)
--> 112         return self._read_lines(out)
    113 
    114     def _read_url_as_StringIO(self, url, params=None):

~\Anaconda3\lib\site-packages\pandas_datareader\av\time_series.py in _read_lines(self, out)
    103 
    104     def _read_lines(self, out):
--> 105         data = super(AVTimeSeriesReader, self)._read_lines(out)
    106         # reverse since alphavantage returns descending by date
    107         data = data[::-1]

~\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py in _read_lines(self, out)
     79                 )
     80             else:
---> 81                 raise RemoteDataError()
     82         df = df[sorted(df.columns)]
     83         df.columns = [id[3:] for id in df.columns]

RemoteDataError: 

有谁知道这意味着什么?有时我会收到此错误,有时我不会?我会运行单元格,它会没事的,如果我在几分钟后运行它,它有时会给我这个错误?

4

1 回答 1

2

RemoteDataError()数据供应商出现错误时会引发 ,在这种情况下,看起来您正在使用标准 API 密钥。引用该站点,标准密钥的阈值为:

每分钟最多 5 个 API 请求,每天最多 500 个请求,以实现最佳的服务器端性能。如果您想针对更大的 API 调用量,请访问高级会员

所以这就是为什么它有时只起作用,你达到了免费密钥的速率限制。

于 2020-01-20T19:31:12.343 回答