2014-11-25 96 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 printing查看'x'和'y'的值。 – 2014-11-25 09:37:20

+0

@ivan_pozdeev對不起,我無法理解pdb結構,因爲它顯示意想不到的EOF時,我輸入'而我<10:' 請幫助。 – Thuruv 2014-11-25 09:49:55

+0

我不明白你的意思是「pdb」。我的意思是[python調試器](https://docs.python.org/2/library/pdb.html?highlight=pdb),特別是它的交互模式。 – 2014-11-25 09:57:55

回答

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