XeNoLL
Окт. 6, 2011 18:29:23
Добрый вечер.
Интересует решение ошибки вида:
itemDesc.replace(';', '')
TypeError: 'NoneType' object is not callable
Думаю решение элементарное, но т.к. новичек в питоне, исправить ни как не могу…
magnet85
Окт. 6, 2011 18:46:05
Объект itemDesc не является строкой, проверить так:
type(itemDesc)
XeNoLL
Окт. 6, 2011 18:50:43
magnet85
Это я понимаю, но как это исправить?
пробовал конвертировал itemDesc в строку, чем она и является, но ошибка не пропадает…
XeNoLL
Окт. 6, 2011 18:52:21
XeNoLL
Попробовал вывел type(itemDesc)
Получилось:
<class 'BeautifulSoup.Tag'>
Чтобы это значило? и как мне это переправить в обычную строку?
magnet85
Окт. 6, 2011 21:00:09
Я с BeautifulSoup не работал смотри документацию,
вот так попробуй
itemDesc.__str__().replace(';', '')
XeNoLL
Окт. 6, 2011 21:56:28
magnet85
Я с BeautifulSoup не работал смотри документацию,
вот так попробуй
itemDesc.__str__().replace(';', '')
Огромное спасибо, все работает.
Версию “супа”, traceback, и код (с данными) на которых воспроизводится ошибка в студию иначе любые ответы это гадание на кофейной гуще. За “itemDesc.__str__()” надо убивать, но если такой вариант устраивает, то делай как учат ещё в подготовительных классах: str(itemDesc).
p.s. Понял в чём дело, сам давно не пользуюсь BeautifulSoup. Обращение к атрибуту Tag'а, равносильно использованию метода find Tag'а (поиск первого дочернего элемента). Но так как ребёнка replace, то возвращается None, который, естественно, не является исполняемым/запускаемым. Для сериализации лучше бы использовать специализированные методы, нежели str.
..bw