有什么办法可以解决下一个问题: 在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 希望这会对你有所帮助:)