Python 值类型(int、float、str)

Python Value Types (int, float, str)

我有一个 Excel sheet 数据如图:Cisco Call Handlers

我正在使用 Python 3 并从 Excel sheet 读取数据,但由于它既有整数又有字符串,我无法指定数据类型。处理值类型的最佳方式是什么?起初,整数将打印 "float" 类型以及尾随“.0”,所以我在每个单元格的数字前放置了一个撇号,这解决了问题,但整数现在打印为字符串类型。我想围绕不同类型构建逻辑,那么最好的方法是什么? 这是我在意识到整数现在打印为字符串类型之前的想法:

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

我考虑的另一个选择是保持类型浮动并围绕它构建逻辑,但我需要正则表达式帮助删除每个具有整数的单元格后的尾随 ".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)

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

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