Форум сайта python.su
Добрый вечер.
Интересует решение ошибки вида:
itemDesc.replace(';', '')
TypeError: 'NoneType' object is not callable
Отредактировано (Окт. 6, 2011 19:11:39)
Офлайн
Объект itemDesc не является строкой, проверить так:
type(itemDesc)
Офлайн
magnet85Это я понимаю, но как это исправить?
Отредактировано (Окт. 6, 2011 19:08:45)
Офлайн
XeNoLLПопробовал вывел type(itemDesc)
<class 'BeautifulSoup.Tag'>
Отредактировано (Окт. 6, 2011 19:11:04)
Офлайн
Я с BeautifulSoup не работал смотри документацию,
вот так попробуй
itemDesc.__str__().replace(';', '')
Офлайн
magnet85Огромное спасибо, все работает.
Я с BeautifulSoup не работал смотри документацию,
вот так попробуйitemDesc.__str__().replace(';', '')
Офлайн
Версию “супа”, traceback, и код (с данными) на которых воспроизводится ошибка в студию иначе любые ответы это гадание на кофейной гуще. За “itemDesc.__str__()” надо убивать, но если такой вариант устраивает, то делай как учат ещё в подготовительных классах: str(itemDesc).
p.s. Понял в чём дело, сам давно не пользуюсь BeautifulSoup. Обращение к атрибуту Tag'а, равносильно использованию метода find Tag'а (поиск первого дочернего элемента). Но так как ребёнка replace, то возвращается None, который, естественно, не является исполняемым/запускаемым. Для сериализации лучше бы использовать специализированные методы, нежели str.
..bw
Отредактировано (Окт. 9, 2011 08:25:57)
Офлайн