【问题标题】:The tickers used in pandas morningstar APIpandas Morningstar API 中使用的代码
【发布时间】:2018-11-01 20:57:34
【问题描述】:

这是我使用 DataReader 和 Morningstar API 获取股票“TSLA”价格所做的工作

import pandas_datareader.data as web
df = web.DataReader('TSLA', 'morningstar', start, end)

但是,如果我为 DataReader 的创建者的第一个参数输入了错误的代码,Python 会继续运行该行。

如何检查第一个参数的ticker是否输入正确?

【问题讨论】:

    标签: python pandas-datareader


    【解决方案1】:

    当我使用无效的股票代码运行您的代码时,Python 解释器刚刚挂起时遇到了同样的问题。我没有找到一个完全简洁的解决方案,但是根据我在 github (link here) 上阅读的一个有点相关的问题报告,我想出了一个答案,如果你输入一个无效的代码,我会阻止 python 解释器挂起符号。

    关键似乎是将pandas_datareader.data.DataReader()retry_count 参数设置为零。

    我在下面有一个完全可重现的 sn-p:

    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!
    

    【讨论】:

    • 谢谢,这是一个很棒的提示。 retry_countValueError 让它对我有用。
    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 2021-01-04
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多