当我运行以下代码时:
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)
您知道如何使用lowercase
方法将NavigableString转换为普通的unicode字符串吗?
答案 0 :(得分:4)
unicode()
没有.lowercase()
方法{。}}。
.lower()
是NavigableString
的一个实例。它具有所有unicode
方法。
A case-insensitive search is more complicated then just calling .lower()
例如full unicode casefolding in Python (case-insensitive search for keywords)
答案 1 :(得分:0)
在您拥有的可导航字符串对象上使用python的str()方法应该没有任何问题。根据我对NavigableString的经验,他们已经处于unicode状态,所以如果你想要一个.lower工作的字符串,那么你需要将它转换为python字符串(UTF-8),然后将其重新转换为unicode。