【问题标题】:How to get current market price of a list of stocks with nsetools?如何使用 nsetools 获取股票列表的当前市场价格?
【发布时间】:2021-03-13 19:27:18
【问题描述】:

我正在尝试编写一个简单的程序,它使用 csv 中的股票列表。我正在使用名为nsetools 的库,它为印度股市提供股票信息。 Loop 应该从 csv 中选择股票代码并打印股票的当前市场价格。 但是,我收到以下错误:

Traceback (most recent call last):
  File "C:/Users/anoopmah/AppData/Roaming/JetBrains/PyCharmCE2020.3/scratches/scratch_7.py", line 15, in <module>
    p = nse.get_quote('temp')['lastPrice']
TypeError: 'NoneType' object is not subscriptable

代码:

import nsetools
import pandas as pd
from nsetools import Nse
nse = Nse()

#Import CSV into dataframe
filepath = "C:/temp/Stock/stocklist.csv"
df = pd.read_csv(filepath,encoding='windows-1252')

for i in range(0,len(df)):
    temp = df["Name"][i]
    print(temp)
    p = nse.get_quote('temp')['lastPrice']
    print(p)

【问题讨论】:

  • 如果答案有效,请务必点击答案旁边的绿色复选标记,并尝试直接提出问题让人们回答。

标签: python csv stock


【解决方案1】:

TypeError: 'NoneType' object is not subscriptable 错误表明您尝试下标(使用[])一个不具备此功能的对象。在这种情况下,它表示一个值为None(因此,... 'NoneType' object ...)的对象被尝试下标。

如果我们检查发生错误的行,您会看到以下代码行:

p = nse.get_quote('temp')['lastPrice']

这里发生的情况是您试图从引用“temp”中检索数据,然后获取与键(在数据字典中)“lastPrice”匹配的值。这个问题可能是函数get_quote 正在返回None。正如您所看到的,在documentation 中指定了 “如果您对无效的代码执行 get_quote 或 get_index_quote,则 API 返回 None。它不会像预期的那样引发异常。 "

因此,您可以得出结论,该错误是由于 'temp' 是无效引用而发生的。

【讨论】:

  • 感谢 Xiddoc。但是,我找到了一种按股票获取多个报价的最后价格的方法 = ['INDUSINDBK', 'SHREECEM','SBIN','NATIONALUM'] data = {stock:nse.get_quote(stock)['lastPrice'] for stock in stock}打印(数据)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
相关资源
最近更新 更多