我有一张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)
答案 0 :(得分:0)
我猜您正在以文本形式从Excel工作表中读取这些值:
您可以使用正则表达式来检查您的值是否由数字(r"[0-9]*"
)或字母(r"[a-bA-B]*"
)组成并分别进行转换。或者:
try:
number = int(val)
except ValueError:
text = val