如何为 python3 中的每 Excel 行创建一个新列表
How to create a new list per Excel row in python3
我有一个 Excel sheet 数据如图所示:
Cisco Call Handlers
我正在使用 Python 3 并从此 sheet 读取数据以尝试为每一行构建一个列表。我试过使用 pandas 和字典,现在我正在尝试 xlrd,因为我想不通!
我目前有以下代码:
idx=1
i2 = 1 #skipping header row as that is where the keys are
list_of_values = []
for idx in range(sheet.nrows):
row = sheet.row_values(idx)
print(idx, row)
idx += 1
if idx == idx:
for cell in row:
list_of_values.append(sheet.row_values(i2))
print(list_of_values)#prints[['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3']]
代码打印如下:
0 ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
1 ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3']
2 ['TestDisplayName3', 6230.0, '', 3030.0, '', 4578.0, '', '', '', '', '', '']
但是当打印list_of_values时,它只会重复打印idx为1的行。
我希望这是有道理的。请帮忙,因为我显然是 Python 的初学者。我知道我的 "list_of_variables" 变量是错误的,因为我需要多个变量来存储我的每一行,对吗?有没有办法为 excel sheet 的每个 list/per 行创建一个新变量来容纳适当的单元格?如:
list_of_values1 = ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0].
list_of_values2 = ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3']
list_of_values3 = ['TestDisplayName3', 6230.0, '', 3030.0, '', 4578.0, '', '', '', '', '', '']
这是您要实现的目标吗?
values = dict()
for idx in range(1, sheet.nrows):
values[idx] = sheet.row_values(idx)
for key, value in values.items():
print(key, value)
此处每个值对应于电子表格中的每一行。
原回复
也许你打算写
list_of_values.append(sheet.row_values(idx))
而不是
list_of_values.append(sheet.row_values(i2))
我有一个 Excel sheet 数据如图所示: Cisco Call Handlers
我正在使用 Python 3 并从此 sheet 读取数据以尝试为每一行构建一个列表。我试过使用 pandas 和字典,现在我正在尝试 xlrd,因为我想不通! 我目前有以下代码:
idx=1
i2 = 1 #skipping header row as that is where the keys are
list_of_values = []
for idx in range(sheet.nrows):
row = sheet.row_values(idx)
print(idx, row)
idx += 1
if idx == idx:
for cell in row:
list_of_values.append(sheet.row_values(i2))
print(list_of_values)#prints[['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'], ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3']]
代码打印如下:
0 ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] 1 ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3'] 2 ['TestDisplayName3', 6230.0, '', 3030.0, '', 4578.0, '', '', '', '', '', '']
但是当打印list_of_values时,它只会重复打印idx为1的行。
我希望这是有道理的。请帮忙,因为我显然是 Python 的初学者。我知道我的 "list_of_variables" 变量是错误的,因为我需要多个变量来存储我的每一行,对吗?有没有办法为 excel sheet 的每个 list/per 行创建一个新变量来容纳适当的单元格?如:
list_of_values1 = ['DisplayName', 'Extension', 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0].
list_of_values2 = ['TestDisplayName2', 3091.0, '', 8645.0, '', '', '', '', '', 'Agent007', '', 'TestDisplayName3']
list_of_values3 = ['TestDisplayName3', 6230.0, '', 3030.0, '', 4578.0, '', '', '', '', '', '']
这是您要实现的目标吗?
values = dict()
for idx in range(1, sheet.nrows):
values[idx] = sheet.row_values(idx)
for key, value in values.items():
print(key, value)
此处每个值对应于电子表格中的每一行。
原回复
也许你打算写
list_of_values.append(sheet.row_values(idx))
而不是
list_of_values.append(sheet.row_values(i2))