Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用NSE工具获取股票列表的当前市场价格?_Python_Csv_Stock - Fatal编程技术网

Python 如何使用NSE工具获取股票列表的当前市场价格?

Python 如何使用NSE工具获取股票列表的当前市场价格?,python,csv,stock,Python,Csv,Stock,我正在尝试编写一个简单的程序,它使用csv中的股票列表。我正在使用名为nsetools的库,它为印度股市提供股票信息。 循环应从csv中选择股票代码,并打印股票的当前市场价格。 但是,我得到的错误如下: Traceback (most recent call last): File "C:/Users/anoopmah/AppData/Roaming/JetBrains/PyCharmCE2020.3/scratches/scratch_7.py", line 15, i

我正在尝试编写一个简单的程序,它使用csv中的股票列表。我正在使用名为
nsetools
的库,它为印度股市提供股票信息。 循环应从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

TypeError:“NoneType”对象不可下标
error表示您试图下标(使用
[]
)一个没有下标功能的对象。在这种情况下,表示试图订阅值为
None
(因此,
…'NoneType'对象…
)的对象

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

p=nse.get_quote('temp')['lastPrice'] 这里发生的事情是,您试图从引号“temp”中检索数据,然后获取与键(在数据字典中)“lastPrice”匹配的值。这样做的问题可能是函数
get\u quote
返回
None
。如您所见,在中指定了“如果您对无效的代码执行get_quote或get_index_quote,那么API将不返回任何值。它不会像人们所期望的那样引发异常。”


因此,您可以断定该错误的发生是由于“temp”是一个无效的报价。

如果答案有效,请确保单击答案旁边的绿色复选标记,并尝试直接向人们提问以供回答。谢谢。然而,我找到了一种方法,通过股票获取多个报价的最后价格=['INDUSINDBK','SHREECEM','SBIN','NATIONALUM']数据={stock:nse.get_quote(股票)['lastPrice']for stock in stocks}打印(数据)
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)