'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版本。
如果您在阅读时仍然面临问题,请告诉我。