Python值类型(int,float,str)

时间:2018-10-09 03:32:09

标签: python excel xlrd

我有一张Excel工作表,数据如图所示:Cisco Call Handlers

我正在使用Python 3并从Excel工作表中读取数据,但是由于它同时具有整数和字符串,因此无法指定数据类型。处理值类型的最佳方法是什么?最初,整数将打印为“ float”类型,后跟为“ .0”,因此我在每个单元格的编号前加了撇号,这解决了问题,但整数现在打印为字符串类型。我想围绕不同的类型构建逻辑,那么解决此问题的最佳方法是什么? 这是我在意识到整数现在可以打印为字符串类型之前想到的:

if type(value[x]) == str:
    do x
if type(value[x]) == int:
    do y

我考虑的另一个选择是保持类型为float并围绕该类型构建逻辑,但是我需要正则表达式帮助来删除每个具有整数的单元格后的尾随".0"。 这是在将撇号放在每个带有数字的单元格中之前会打印的内容:

0 ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]

值创建如下:

values = dict()
for idx in range(1, xlrdsheet.nrows):
    values[idx] = xlrdsheet.row_values(idx)
for key, value in values.items():
    print(key, value)

1 个答案:

答案 0 :(得分:0)

我猜您正在以文本形式从Excel工作表中读取这些值: 您可以使用正则表达式来检查您的值是否由数字(r"[0-9]*")或字母(r"[a-bA-B]*")组成并分别进行转换。或者:

try:
    number = int(val)
except ValueError:
    text = val