2012-02-01 15 views
1

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

はあなたがlowercase方法で、通常のUnicode文字列にNavigableStringを変換する方法を知っていますか?

答えて

4

unicode().lowercase()メソッドはありません.lower()です。

NavigableStringは、unicodeのインスタンスです。それはすべてunicodeメソッドを持っています。

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

+0

この回答は質問に明示的には反応しません。 NavigableStringを文字列に変換する方法を質問します。あなたの答えはよりエレガントな解決策ですが、質問には答えません。このようなことが可能な場合、NavigableStringをどのように文字列に変換するかについての解説であなたの答えを更新してください。 – melchoir55

+0

@ melchoir55答えは、NavigableString *が 'unicode'のインスタンスであることを明示的に示しています。 NavigableString *がすでに文字列であることを理解していない場合は、聞いてください。 – jfs

0

あなたが持っているナビゲート可能な文字列オブジェクトに対してpythonのstr()メソッドを使用するだけで問題はありません。私のNavigableStringの経験からは、すでにUnicodeになっているので、.lowerが動作する文字列が必要な場合は、Python文字列(UTF-8)にキャストしてUnicodeに戻す必要があります。

関連する問題