2009-01-05 29 views
5

Escribí este pequeño fragmento de Python que raspa una alimentación y la imprime. Cuando ejecuto el código, algo en el feed desencadena el mensaje de error que ve aquí como mi pregunta. Aquí está la salida de la consola completa en caso de error:python "'NoneType' objeto no tiene ningún atributo 'encode'"

> Traceback (most recent call last): 
> File "/home/vijay/ffour/ffour5.py", 
> line 20, in <module> 
>  myfeed() File "/home/vijay/ffour/ffour5.py", line 
> 15, in myfeed 
>  sys.stdout.write(entry["title"]).encode('utf-8') 
> AttributeError: 'NoneType' object has 
> no attribute 'encode' 
+1

Por favor ingrese el código. El error podría provenir de cualquier cantidad de problemas. –

Respuesta

12
> sys.stdout.write(entry["title"]).encode('utf-8') 

Este es el culpable. Probablemente decir:

sys.stdout.write(entry["title"].encode('utf-8')) 

(Note la posición del último paréntesis de cierre.)

5

Vamos a tratar de aclarar algunas de la confusión en el mensaje de excepción.

La función de llamada

sys.stdout.write(entry["title"]) 

devuelve None. El ".encode ('utf-8')" es una llamada a la función de codificación sobre lo que devuelve la función anterior.

El problema es que None no tiene una función de codificación (o un atributo de codificación) y así se obtiene un error de atributo que nombra el tipo del atributo que intentaba obtener y el atributo que intentaba obtener.

+1

+1 buena explicación – nosklo

Cuestiones relacionadas