将NavigableString转换为unicode字符串

时间:2012-02-01 16:34:38

标签: python string unicode beautifulsoup

当我运行以下代码时:

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字符串吗?

2 个答案:

答案 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。