从现有工作簿读取时出现整数

时间:2015-11-27 17:39:49

标签: python excel integer spreadsheet openpyxl

我有一个.xlsx文件,我正在尝试读取一列并将其转储到列表中。列中的值均为floatint

COLUMN B
72.3
78.34
80
82.4
83.49
84.34
...

这是我用来进行转储的代码:

import openpyxl
from openpyxl import load_workbook

#Reading the xlsx file in
wb=load_workbook(filename='Results.xlsx',use_iterators=True)
ws = wb.get_sheet_by_name(name = 'Plot_2')

mylist=[]

for row in ws.iter_rows('B5:B104'):
    for cell in row:
        mylist.append(cell.value)

这些是我返回的值:

In [1]: mylist
Out [1]:
[72.3,
 78.34,
 80L,
 82.4,
 83.49,
 84.34,
 ...

如何确保我的80像整数一样被读入,而没有添加L,为什么会这样?

2 个答案:

答案 0 :(得分:1)

map(lambda x: int(x) if x%1==0 else x, mylist)

答案 1 :(得分:1)

为了拥有Python 2和Python 3的通用代码库,我们决定实现Python 3类型。虽然Python 2对于大整数有一个特殊的long类型,但Python 3中没有这样的类型。为了安全起见,所有整数都被视为long。这应该对您的代码没有任何副作用。