次の問題を克服する方法はありますか? Python で xlrd パッケージを使用すると、Excel ファイルの値 '1' が '1.0' と表示されます。
今、違いに気付くスクリプトを書いています。この値をインデックスとして使用しているため、「1」と「1.0」は完全に異なるインデックスですが、この問題を克服する方法が見つかりません。
私にできることはありますか?
ありがとう。
xlrd を使用して Excel ファイルを解析しているときに、同じ問題が発生しました。私が見つけた最も簡単な方法は、既知の float 値を int に変換することでした。解析しているフィールドのデータ型がわからない場合を除きます。
そのような状況では、int に変換して、エラーをキャッチすることができます。例:
try:
converted_int = int(float_number)
except Error:
//log or deal with error here.
はい、これは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
を使用int(some_number)
して数値を に変換しinteger
ます。ここから int 関数のドキュメントを見ることができます: BIF
これがお役に立てば幸いです :)