Не удается получить словарь для цикла для извлечения строк из правильных столбцов - PullRequest
0 голосов
/ 21 сентября 2018

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

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

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

0 голосов
/ 21 сентября 2018

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

list1 = list(sheet.cell(row=i, column=1).value)
list2 = list(sheet.cell(row=i, column=3).value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...