【问题标题】:converting NavigableString to unicode string将 NavigableString 转换为 unicode 字符串
【发布时间】:2012-02-01 16:34:37
【问题描述】:

当我运行以下代码时:

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

【问题讨论】:

    标签: python string unicode beautifulsoup


    【解决方案1】:

    unicode() 没有 .lowercase() 方法它有 .lower()

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

    A case-insensitive search is more complicated then just calling .lower() 例如full unicode casefolding in Python (case-insensitive search for keywords).

    【讨论】:

    • 这个答案没有明确回应这个问题。该问题询问如何将 NavigableString 转换为字符串。虽然您的答案是一个更优雅的解决方案,但它并没有回答问题。您能否更新您的答案,说明如果可能的话,如何将 NavigableString 转换为字符串?
    • @melchoir55 答案明确表示 NavigableString unicode 的一个实例。如果你不明白这意味着 NavigableString is 已经是一个字符串;问。
    【解决方案2】:

    在您拥有的可导航字符串对象上使用 python 的 str() 方法应该没有任何问题。根据我对 NavigableString 的经验,它们已经是 unicode,所以如果你想要一个 .lower 可以工作的字符串,那么你需要将其转换为 python 字符串(UTF-8),然后将其重新转换为 unicode。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多