下面是我使用DataReader和morningstar API获取股票"TSLA“价格的过程
import pandas_datareader.data as web
df = web.DataReader('TSLA', 'morningstar', start, end)
但是,如果我为DataReader创建者的第一个参数输入了错误的滚动条,Python就会继续运行这行代码。
如何检查第一个参数是否正确输入了滚动条?
发布于 2018-06-05 04:31:55
当我使用无效的滚动条符号运行您的代码时,我遇到了Python解释器挂起的相同问题。我没有找到一个完全整洁的解决方案,但基于我在github (link here)上读到的一个相关问题报告,我想出了一个答案,如果您输入无效的滚动条符号,python解释器将不会挂起。
关键似乎是将pandas_datareader.data.DataReader()
的retry_count
参数设置为零。
我有一个完全可重现的代码片段:
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
使用预期输出:
Symbol Date Close High Low Open Volume
TSLA 2018-05-24 277.85 281.110 274.89 278.4000 4190598
2018-05-25 278.85 279.640 275.61 277.6252 3875082
2018-05-28 278.85 278.850 278.85 278.8500 0
2018-05-29 283.76 286.500 276.15 278.5100 5666640
2018-05-30 291.72 295.005 281.60 283.2900 7428352
Ticker Symbol yyfy is not available!
Symbol Date Close High Low Open Volume
AAPL 2018-05-24 188.15 188.84 186.21 188.77 20330134
2018-05-25 188.58 189.65 187.65 188.23 17460963
2018-05-28 188.58 188.58 188.58 188.58 0
2018-05-29 187.90 188.75 186.87 187.60 22514075
2018-05-30 187.50 188.00 186.78 187.72 18430891
Ticker Symbol QQQQ is not available!
https://stackoverflow.com/questions/50478715
复制相似问题