openpyxl从excel获取值并存储在键值对中

时间:2015-11-04 13:18:24

标签: python excel python-2.7 openpyxl

编写了一个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

执行此操作

1 个答案:

答案 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}