2013-07-15 132 views
2

有什麼辦法可以解決下一個問題: 在Python中使用xlrd軟件包時,excel文件中的值'1'顯示爲'1.0'。現在,我正在寫一個腳本,應該能夠注意到不同之處,我使用這個值作爲索引,所以'1'和'1.0'是完全不同的索引,但我無法找到任何方法來克服這個問題問題。Python xlrd軟件包問題

有什麼我可以做的嗎?

謝謝。

回答

0

是的,這是xlrd一個共同的問題。 你一般需要轉換爲int,當數字實際上是int類型和其餘的時候你需要它作爲float本身。

所以這裏的東西,以及從工作在大多數情況下:

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 
0

我在使用xlrd解析excel文件時遇到同樣的問題。我發現的最簡單的方法就是將已知的浮點值轉換爲整數。除非你碰巧遇到了這種情況,你不知道你正在解析的字段的數據類型。

在這種情況下,您可以嘗試轉換爲int,並捕獲錯誤。對於如:

try: 
    converted_int = int(float_number) 
except Error: 
    //log or deal with error here. 
0

使用int(some_number)到數字轉換爲integer。 你可以從這裏看到int函數的文檔:BIF 希望這會對你有所幫助:)