2014-11-25 4 views
-1

Здесь я пытаюсь прочитать данные из excel и сопоставить два столбца в словаре. Результатом является только однозначное значение &, когда я его распечатаю. , пожалуйста, дайте мне знать процедуру. .?Словарь Ошибка

import openpyxl 

book = openpyxl.load_workbook('c:/users/c_thv/desktop/tax.xlsx') 
sheet = book.get_sheet_by_name('Thilip') 
cell = sheet.cell(row=2,column = 4) 
i = 2 
x = [] 
y = [] 
while i < 10: 
    keys = sheet.cell(row=i,column = 4) 
    values = sheet.cell(row = i,column = 5) 
    x.append(keys.value) 
    y.append(values.value) 
    i +=1 
mydict = {key:value for key, value in zip(x,y)} 
print mydict 

Из пут: TypeError: zip argument #1 must support iteration

+0

Используйте печать pdb/debug, чтобы увидеть значения 'x' и' y'. –

+0

@ivan_pozdeev Извините, я не могу понять структуру pdb, поскольку она показывает неожиданный EOF, когда я набираю 'While i <10:' Пожалуйста, помогите. – Thuruv

+0

Я не могу понять, что вы подразумеваете под «pdb». Я имею в виду [отладчик python] (https://docs.python.org/2/library/pdb.html?highlight=pdb), в частности, его интерактивный режим. –

ответ

0

Вы можете использовать простую for петлю вместо while и назначить элементы непосредственно в словарь в нем.

Похоже, вы хотите, чтобы значения из столбца «D» были вашими ключами, а от «E» - значениями. Должно работать следующее:

mydict = {} 
for row in range(2, 10): 
    key = sheet.cell(row, 4).value 
    value = sheet.cell(row, 5).value 
    mydict[key] = value 

 Смежные вопросы

  • Нет связанных вопросов^_^