преобразование NavigableString в строку Unicode - PullRequest
1 голос
/ 01 февраля 2012

Когда я запускаю следующий код:

if substr in movie.lowercase:

Я получаю следующую ошибку

AttributeError: 'NavigableString' object has no attribute 'lowercase'

movie отсюда:

movie = row.td.div.h4.string

Я пытался изменить его на (безуспешно)

movie = row.td.div.h4.string.string

или

movie = unicode(row.td.div.h4.string)

Знаете ли вы, как преобразовать NavigableString в обычную строку Unicode с помощью метода lowercase?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

unicode() не имеет метода .lowercase(), имеет .lower().

NavigableString является экземпляром unicode.У него есть все unicode методы.

Поиск без учета регистра более сложен, чем просто вызов .lower() например, полное Unicode casefolding в Python (поиск без учета регистра для ключевых слов) .

0 голосов
/ 01 января 2017

Не должно быть никаких проблем, просто используя метод stthon () в python для имеющегося у вас объекта string.Из моего опыта работы с NavigableString они уже в Unicode, поэтому, если вы хотите, чтобы строка, на которой будет работать .lower, вам нужно привести ее к строке Python (UTF-8), а затем снова преобразовать ее в Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...