从现有工作簿读取时出现整数问题
Issue with integer numbers when reading from existing workbook
我有一个 .xlsx
文件,我正在尝试读取一列并将其转储到列表中。列中的值都是 float
和 int
:
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
,这是为什么?
map(lambda x: int(x) if x%1==0 else x, mylist)
为了 Python 2 和 Python 3 有一个共同的代码库,我们决定实现 Python 3 类型。虽然 Python 2 有一个特殊的 long
类型用于大整数,但 Python 3 中没有这种类型。为了安全起见,所有整数都被视为 long
。这应该不会对您的代码产生副作用。
我有一个 .xlsx
文件,我正在尝试读取一列并将其转储到列表中。列中的值都是 float
和 int
:
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
,这是为什么?
map(lambda x: int(x) if x%1==0 else x, mylist)
为了 Python 2 和 Python 3 有一个共同的代码库,我们决定实现 Python 3 类型。虽然 Python 2 有一个特殊的 long
类型用于大整数,但 Python 3 中没有这种类型。为了安全起见,所有整数都被视为 long
。这应该不会对您的代码产生副作用。