Error al configurar el widget tkinter: el objeto ‘NoneType’ no tiene atributo

Estoy ejecutando el siguiente código que funciona bien cuando codifico el valor

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') 

ver que he codificado el valor nse.get_quote (‘INFY’) pero cuando ejecuto el siguiente código, aparece el siguiente error:

 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') 

ERROR:

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

Por favor ayuda

NoneType object has no attribute ... significa que tiene un objeto que es None y está intentando usar un atributo de ese objeto.

En su caso, está haciendo q.get(...) , entonces q debe ser None . Como q es el resultado de llamar a nse.get_quote(...) , esa función debe tener la posibilidad de devolver None . Deberá ajustar su código para tener en cuenta esa posibilidad, como verificar el resultado antes de intentar usarlo:

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

La raíz del problema es probable en cómo estás leyendo el archivo. stock incluirá la nueva línea, por lo que debe eliminarlo antes de llamar a nse.get_quote :

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

Compruebe el tipo de ‘stock’ en q = nse.get_quote (stock)

debe ser una cuerda Además, nestools solo es compatible con Python2, no ha aclarado su versión de python.

Si todavía estás enfrentando el problema al momento de leerlo, házmelo saber.