将NavigableString转换为unicode字符串

2 投票
2 回答
7258 浏览
提问于 2025-04-17 12:07

当我运行以下代码时:

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()

NavigableStringunicode 的一个实例。它拥有所有 unicode 的方法。

不区分大小写的搜索比单纯调用 .lower() 要复杂得多,例如 在 Python 中进行完整的 unicode 大小写转换(不区分大小写的关键词搜索)

撰写回答