以下是我使用带有 Morningstar API 的 DataReader 获取股票“TSLA”价格所做的工作
import pandas_datareader.data as web
df = web.DataReader('TSLA', 'morningstar', start, end)
但是,如果我为 DataReader 创建者的第一个参数输入了错误的代码,Python 就会继续运行该行。
如何检查第一个参数的行情输入是否正确?
当我使用无效的股票代码运行您的代码时,我遇到了同样的问题,Python 解释器只是挂起。我没有找到一个完全简洁的解决方案,但基于我在 github 上读到的一些相关的问题报告(链接在这里 https://github.com/pydata/pandas-datareader/issues/513),我想出了一个答案,如果您输入无效的股票代码,它将阻止 python 解释器挂起。
关键似乎是设置retry_count
的参数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
预期输出:
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!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)