Я пытаюсь создать словарь из двух столбцов в файле 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)

Я исправил свою первоначальную ошибку (забыл, что мне не нужно начинать свои столбцы с нуля), но теперь, когда я печатаю свой словарь или списки, кажется, что каждый из них получает случайные значения. Я пытаюсь получить значения из столбца 1 и столбца 3 моего файла Excel.

Мои столбцы выглядят так:

Col1      Col3
ger       Germany
eng       England
fra       France
spa       Spain
etc       etc

Тем не менее, когда я иду напечатать свой словарь, он, кажется, вытянул случайные буквы из неизвестных столбцов в моем файле Excel и только печатает это:

{'z': 'a', 'w': 'f', 'e': 'r'}

Как я могу исправить эту ошибку? Я пытаюсь сделать column1 ключом для моего словаря, а column 3 - моим значением.

1
A.Coder47 21 Сен 2018 в 05:13

2 ответа

Лучший ответ

Похоже, что вы используете column=0, однако, поскольку он считается от 1, столбец 0 не существует. Попробуйте это вместо этого:

list1 = list(sheet.cell(row=i, column=1).value)
list2 = list(sheet.cell(row=i, column=3).value)
0
DeltaMarine101 21 Сен 2018 в 02:20

Решил мою проблему! Я должен был создать временные переменные, которые равнялись бы ячейкам листа, которые я искал в моем цикле for. После запуска каждой из этих строк я добавил эту временную переменную в свой список. После завершения цикла for я сжал свой словарь, распечатал его, и все было там.

0
A.Coder47 21 Сен 2018 в 03:16