Python的Robinhood问题

2024-10-06 07:07:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个函数,提取股票的买入/卖出/持有分析师评级,如下所示:

pip install robin_stocks
import robin_stocks
robin_stocks.authentication.login(username=None, password=None, expiresIn=86400, scope='internal', by_sms=True, store_session=True, mfa_code=None)

def getRobinRating(symbol):
    buy = robin_stocks.stocks.get_ratings(symbol, info='summary')['num_buy_ratings']
    return buy

print(getRobinRating('NVCR'))

这会产生以下错误:

Traceback (most recent call last):

  File "<ipython-input-78-79c186ebe0bf>", line 9, in <module>
    print(getRobinRating('NVCR'))

  File "<ipython-input-78-79c186ebe0bf>", line 5, in getRobinRating
    buy = robin_stocks.stocks.get_ratings(symbol, info='summary')['num_buy_ratings']

KeyError: 'num_buy_ratings'

奇怪的是,如果我这么做

def getRobinRating(symbol):
    buy = robin_stocks.stocks.get_ratings(symbol, info='summary')
    return buy

print(getRobinRating('NVCR'))

输出:

{'summary': {'num_buy_ratings': 4, 'num_hold_ratings': 2, 'num_sell_ratings': 1}, 'ratings': [], 'instrument_id': '4d591f16-7f0a-4fe7-a369-5346a61c0dfb', 'ratings_published_at': None}

为什么在前一种情况下它无法访问词典


Tags: infononetruegetdefbuysummarysymbol
1条回答
网友
1楼 · 发布于 2024-10-06 07:07:33

get_ratings(symbol, info='summary')调用返回一个以summary作为第一个键的字典:

{'summary': 
    {'num_buy_ratings': 4, 
     'num_hold_ratings': 2, 
     'num_sell_ratings': 1}, 
 'ratings': [], 
 'instrument_id': '4d591f16-7f0a-4fe7-a369-5346a61c0dfb', 
 'ratings_published_at': None}

要访问内部字典,请首先访问summary

MyDict['summary']['num_buy_ratings']

请尝试以下代码:

buy = robin_stocks.stocks.get_ratings(symbol, info='summary')['summary']['num_buy_ratings']

相关问题 更多 >