2016-06-07 48 views
0
from xlrd import open_workbook 
book = open_workbook('Workbook2.csv') 
sheet = book.sheet_by_index(0) 
keys = [sheet.cell(0,col_index).value for col_index in xrange(sheet.ncols)] 
dict_list =[] 

for row_index in xrange(1,sheet.nrows): 
    d={keys[col_index]: sheet.cell(row_index, col_index).value for col_index in xrange(sheet.ncols)} 
    dict_list.append(d) 

print dict_list 

for i in range(len(dict_list)): 
    for key,val in dict_list[i]: 
    print val 

試圖打印出val,但它給出了這個錯誤:ValueError:太多的值來解壓縮。任何人都可以幫忙?在這個錯誤上需要幫助:ValueError:太多的值來解壓

+1

'for key,val in dict_list [i] .items()'? –

+0

CSV的內容是什麼? – Rich

回答

1

試試,如果你正在使用Python 2:

for key, val in dict_list[i].iteritems(): 

或者使用Python 3:

for key, val in dict_list[i].items(): 

另外,如果你只想鍵,或只是值,你可以使用分別爲dict_list[i].keys()dict_list[i].values()

+0

是的。它的工作,你能告訴我爲什麼嗎? – WillWill

+0

當您遍歷字典時,您只能得到密鑰。將密鑰解壓縮到鍵/值對是不可能的。價值信息甚至不存在。字典上的'items()'方法返回一個包含鍵/值對的列表,所以如果你得到字典'{'a':1,'b':2}',它返回'[('a',1 ),('b',2)]'。現在您可以將這些數據解壓縮爲一個密鑰和一個值。 'iteritems()'方法不返回帶有鍵和值的列表,而是返回一個迭代器。這通常是更好的選擇,因爲鍵/值列表可能佔用大量內存。 – user2746752

+0

在Python 3中,iteritems()方法被刪除,items()方法現在返回一個迭代器。 – user2746752

相關問題