2

次の問題を克服する方法はありますか? Python で xlrd パッケージを使用すると、Excel ファイルの値 '1' が '1.0' と表示されます。

今、違いに気付くスクリプトを書いています。この値をインデックスとして使用しているため、「1」と「1.0」は完全に異なるインデックスですが、この問題を克服する方法が見つかりません。

私にできることはありますか?

ありがとう。

4

4 に答える 4

0

xlrd を使用して Excel ファイルを解析しているときに、同じ問題が発生しました。私が見つけた最も簡単な方法は、既知の float 値を int に変換することでした。解析しているフィールドのデータ型がわからない場合を除きます。

そのような状況では、int に変換して、エラーをキャッチすることができます。例:

try:
    converted_int = int(float_number)
except Error:
    //log or deal with error here.
于 2013-07-15T05:06:32.787 に答える
0

はい、これはxlrdの一般的な問題です。数値が実際にint型であり、残りの場合はfloat自体として必要な場合は、一般に int に変換する必要があります。

したがって、ほとんどの場合、うまくいくものは次のとおりです。

 int_value = int(float_value)
 if float_value == int_value:
     converted_value = int_value
 else:
     converted_value = float_value

>>> a = 123.0
>>> type(a)
<type 'float'>
>>> b = int(a)
>>> a == b
True
于 2013-07-15T08:54:43.390 に答える
0

を使用int(some_number)して数値を に変換しintegerます。ここから int 関数のドキュメントを見ることができます: BIF これがお役に立てば幸いです :)

于 2016-03-16T16:57:37.110 に答える