2016-06-07 55 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

相关问题