无法获取字典以循环从正确的列中提取字符串

时间:2018-09-21 02:13:17

标签: python dictionary for-loop

我正在尝试从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作为我的值。

2 个答案:

答案 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循环完成后,我压缩了字典,将其打印出来,一切都在那里。