2

私はXMLファイルをスクレイピングし、パーセンテージのロードを返します。パーセンテージとして直接引き出され、%記号がすでに添付されている場合があります。

-38%
-2%
4%
25%

私はこのようなフィルタを実行しようとしています:

if percentage < 20.0 : continue;

ただし、このフィルターを実行することはできません。% 記号の結果と思われます。

参考のために私は使用します:

cell['roi']

パーセンテージを取得するには、次を使用して各行を反復処理します。

for row in xmlload1['rows']:
    cell = row["cell"]

この % 記号を回避するにはどうすればよいですか? 簡単な方法はありますか?

4

2 に答える 2

8

"4%"文字列 ( など) をフロート ( )と比較しようとしているため、そのフィルターを実行できません20.0。Python 3 では、これによりTypeError;が発生します。Python 2 では「動作」しますが、すべての文字列が number より大きいものとして扱われる20.0ため、何の役にも立ちません。

float として使用する前に、文字列を float に変換する必要があります。ただし、文字列全体を変換するのではなく、文字の前の部分だけを変換する必要があり"%"ます。(4%は数字ではないので、数字であるのは だけ4です。)

を使用rstripして を削除し"%"、 を使用floatして float に変換します。

cell = float(row["cell"].rstrip("%"))
于 2013-06-05T19:15:41.623 に答える
3

渡された文字列で渡された文字を削除する文字列を渡すことができますstrip。以下は、%、改行、およびスペースを削除します。

cell = int(row["cell"].strip("%\n "))
于 2013-06-05T19:10:52.040 に答える