openpyxl 从 excel 中获取值并存储在键值对中
openpyxl Fetch value from excel and store in key value pair
已经编写了一个 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
Output for the above script: [state, country, code] [abc, xyz,
0][def, lmn, 0]
I want output in below format: [state:abc, country:xyz,
code:0][state:def, country:lmn, code:0]
请注意:我想从 openpyxl 执行此操作
试试这个:
res = iter_rows(active)
keys = next(res)
for new in res:
print dict(zip(keys, new))
res
是一个迭代器。因此,next(res)
给出了下一个元素。在我们的例子中是字典的键。使用 for
循环遍历 res
的其余部分,dict()
为每个元素 new
创建一个新字典,对所有字典使用相同的 keys
。函数 zip()
以这样一种方式组合两个(或更多)序列,它用每个序列中的一个元素创建对。 dict()
使用其中一对作为一个新项目的键和值,并遍历所有对。例如,这个:
dict(zip('abc', [1, 2, 3]))
本词典中的结果:
{'a': 1, 'b': 2, 'c': 3}
已经编写了一个 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
Output for the above script: [state, country, code] [abc, xyz, 0][def, lmn, 0]
I want output in below format: [state:abc, country:xyz, code:0][state:def, country:lmn, code:0]
请注意:我想从 openpyxl 执行此操作
试试这个:
res = iter_rows(active)
keys = next(res)
for new in res:
print dict(zip(keys, new))
res
是一个迭代器。因此,next(res)
给出了下一个元素。在我们的例子中是字典的键。使用 for
循环遍历 res
的其余部分,dict()
为每个元素 new
创建一个新字典,对所有字典使用相同的 keys
。函数 zip()
以这样一种方式组合两个(或更多)序列,它用每个序列中的一个元素创建对。 dict()
使用其中一对作为一个新项目的键和值,并遍历所有对。例如,这个:
dict(zip('abc', [1, 2, 3]))
本词典中的结果:
{'a': 1, 'b': 2, 'c': 3}