pandas Morningstar API 中使用的股票代码

2023-12-21

以下是我使用带有 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(使用前将#替换为@)

pandas Morningstar API 中使用的股票代码 的相关文章

随机推荐