python "Объект NoneType не имеет атрибута" закодировать "" - PullRequest
5 голосов
/ 05 января 2009

Я написал этот крошечный фрагмент Python, который очищает канал и распечатывает его. Когда я запускаю код, что-то в ленте вызывает сообщение об ошибке, которое вы видите здесь как мой вопрос Вот полный вывод консоли при ошибке:

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

Ответы [ 2 ]

12 голосов
/ 05 января 2009
> sys.stdout.write(entry["title"]).encode('utf-8')

Это виновник. Вы, вероятно, имеете в виду:

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

(Обратите внимание на положение последней закрывающей скобки.)

5 голосов
/ 05 января 2009

Давайте попытаемся устранить некоторую путаницу в сообщении об исключении.

вызов функции

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

Возвращает Нет. «.Encode ('utf-8')» - это вызов функции кодирования для того, что возвращается вышеуказанной функцией.

Проблема в том, что None не имеет функции кодирования (или атрибута кодирования), и поэтому вы получаете ошибку атрибута, в которой указаны тип, для которого вы пытались получить атрибут, и атрибут, который вы пытались получить.

...