'NoneType'对象没有属性'get'

我正在运行下面的代码,运行良好时,我硬编码的价值

from nsetools import Nse nse = Nse() with open('all_nse_stocks') as nse_stocks: for stock in nse_stocks: q = nse.get_quote('INFY') print q.get('open'), '\t', q.get('lastPrice'), '\t', q.get('dayHigh'), '\t', q.get('dayLow') 

看到我硬编码的值nse.get_quote('INFY')但是,当我运行下面的代码,我得到以下错误:

 from nsetools import Nse nse = Nse() with open('all_nse_stocks') as nse_stocks: for stock in nse_stocks: q = nse.get_quote(stock) print q.get('open'), '\t', q.get('lastPrice'), '\t', q.get('dayHigh'), '\t', q.get('dayLow') 

错误:

 Traceback (most recent call last): File "test.py", line 6, in <module> print q.get('open'), '\t', q.get('lastPrice'), '\t', q.get('dayHigh'), '\t', q.get('dayLow') AttributeError: 'NoneType' object has no attribute 'get' 

请帮忙

NoneType object has no attribute ...意味着你有一个None的对象,你试图使用该对象的属性。

在你的情况你正在做q.get(...) ,所以q必须是None 。 因为q是调用nse.get_quote(...)的结果,所以该函数必须有返回None的可能性。 您需要调整您的代码以说明这种可能性,例如在尝试使用之前检查结果:

 q = nse.get_quote(stock) if q is not None: print ... 

问题的根源可能在于如何阅读文件。 stock将包括换行符,所以你应该nse.get_quote之前调用nse.get_quote

 q = nse.get_quote(stock.strip()) 

请在q = nse.get_quote(stock)中查看'stock'的types

它必须是一个string。 另外nestools只支持Python2,你还没有澄清你的python版本。

如果您在阅读时仍然面临问题,请告诉我。