以下是我使用带有morningstar API的DataReader获取股票“TSLA”的价格
import pandas_datareader.data as web
df = web.DataReader('TSLA', 'morningstar', start, end)
但是,如果我为DataReader的创建者的第一个参数输入了错误的自动收报机,那么Python就会继续运行该行。
如何检查第一个参数是否正确输入了滚动条?
答案 0 :(得分:1)
当我使用无效的自动收报机代码运行代码时,我遇到了与Python解释器挂起的相同问题。我没有找到一个完全整洁的解决方案,但根据我在github(link here)上阅读的一些相关问题报告,我提出了一个答案,可以阻止python解释器挂起如果您输入无效的股票代码。
密钥似乎是将retry_count
的{{1}}参数设置为零。
我在下面有一个完全可重现的代码段:
pandas_datareader.data.DataReader()
预期输出:
import pandas_datareader
import datetime
start = datetime.datetime(2018, 5, 1)
end = datetime.datetime(2018, 5, 30)
def get_data(ticker):
try:
df = pandas_datareader.data.DataReader('%s' % (ticker), 'morningstar', start, end, retry_count=0)
print(df.tail(5))
except ValueError:
print('Ticker Symbol %s is not available!' % (ticker))
get_data('TSLA') #valid Symbol
get_data('yyfy') #not a valid Symbol
get_data('AAPL') #valid Symbol
get_data('QQQQ') #not a valid Symbol