有什麼辦法可以解決下一個問題: 在Python中使用xlrd軟件包時,excel文件中的值'1'顯示爲'1.0'。現在,我正在寫一個腳本,應該能夠注意到不同之處,我使用這個值作爲索引,所以'1'和'1.0'是完全不同的索引,但我無法找到任何方法來克服這個問題問題。Python xlrd軟件包問題
有什麼我可以做的嗎?
謝謝。
有什麼辦法可以解決下一個問題: 在Python中使用xlrd軟件包時,excel文件中的值'1'顯示爲'1.0'。現在,我正在寫一個腳本,應該能夠注意到不同之處,我使用這個值作爲索引,所以'1'和'1.0'是完全不同的索引,但我無法找到任何方法來克服這個問題問題。Python xlrd軟件包問題
有什麼我可以做的嗎?
謝謝。
是的,這是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
我在使用xlrd解析excel文件時遇到同樣的問題。我發現的最簡單的方法就是將已知的浮點值轉換爲整數。除非你碰巧遇到了這種情況,你不知道你正在解析的字段的數據類型。
在這種情況下,您可以嘗試轉換爲int,並捕獲錯誤。對於如:
try:
converted_int = int(float_number)
except Error:
//log or deal with error here.
使用int(some_number)
到數字轉換爲integer
。 你可以從這裏看到int函數的文檔:BIF 希望這會對你有所幫助:)