我正在尝试从Excel文件中的两列创建字典。我的代码如下:
import openpyxl
from openpyxl import load_workbook
wb = load_workbook('country_data.xlsx')
sheet = wb["List of countries"]
for i in range(1, 198):
list1 = list(sheet.cell(row=i, column=1).value)
list2 = list(sheet.cell(row=i, column=3).value)
dictionary = dict(zip(list1,list2))
print(dictionary)
我修复了原来的错误(忘记了我不需要从零开始的列),但是现在当我打印字典或列表时,似乎它们每个都取了随机值。我正在尝试从excel文件的第1列和第3列中提取值。
我的专栏看起来像这样:
Col1 Col3
ger Germany
eng England
fra France
spa Spain
etc etc
但是,当我去打印字典时,似乎从excel文件中的未知列中提取了随机字母,并且仅打印了此内容:
{'z':'a','w':'f','e':'r'}
如何解决此错误?我试图将column1作为字典的键,并将column3作为我的值。
答案 0 :(得分:0)
您似乎正在使用column=0
,但是由于它从1开始计数,所以不存在col 0。尝试以下方法:
list1 = list(sheet.cell(row=i, column=1).value)
list2 = list(sheet.cell(row=i, column=3).value)
答案 1 :(得分:0)
解决了我的问题!我必须创建等于在for循环中要查找的工作表单元格的临时变量。这些行中的每一行运行完后,我然后将该temp变量附加到列表中。 for循环完成后,我压缩了字典,将其打印出来,一切都在那里。