编写了一个python脚本,用于获取单元格值并逐行显示在列表中。
这是我的剧本:
book = openpyxl.load_workbook(excel_file_name)
active = book.get_sheet_by_name(excel_file_name)
def iter_rows(active):
for row in active.iter_rows():
yield [cell.value for cell in row]
res = list(iter_rows(active))
for new in res:
print new
上述脚本的输出:[州,国家,代码] [abc,xyz, 0] [def,lmn,0]
我想要以下格式输出:[state:abc,country:xyz, 代码:0] [state:def,country:lmn,code:0]
请注意:我想从openpyxl
执行此操作答案 0 :(得分:2)
试试这个:
res = iter_rows(active)
keys = next(res)
for new in res:
print dict(zip(keys, new))
res
是一个迭代器。因此,next(res)
给出了下一个元素。在我们的例子中,字典的键。使用res
循环对剩余的for
进行迭代,dict()
为每个元素new
创建一个新字典,对所有字典使用相同的keys
。函数zip()
以这种方式组合两个(或更多)序列,它创建与每个序列中的一个元素的对。 dict()
使用其中一对作为一个新项的键和值,并遍历所有对。例如,这个:
dict(zip('abc', [1, 2, 3]))
结果出现在这本词典中:
{'a': 1, 'b': 2, 'c': 3}