将NavigableString转换为unicode字符串
当我运行以下代码时:
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 个回答
0
你可以直接对你手上的可导航字符串对象使用Python的str()方法,应该没有问题。根据我的经验,这些可导航字符串本身已经是Unicode格式了。如果你想要一个可以使用.lower()方法的字符串,那你需要先把它转换成Python字符串(UTF-8格式),然后再把它转换回Unicode格式。
5
unicode()
这个函数没有 .lowercase()
这个方法,它有 .lower()
。
NavigableString
是 unicode
的一个实例。它拥有所有 unicode
的方法。
不区分大小写的搜索比单纯调用 .lower()
要复杂得多,例如 在 Python 中进行完整的 unicode 大小写转换(不区分大小写的关键词搜索)。