2013-07-15 29 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 希望这会对你有所帮助:)