将元素列出到变量

时间:2013-05-14 14:52:04

标签: python

受到Reading a UTF8 CSV file with Python的接受答案的启发,我尝试了以下内容但是

ValueError: need more than 5 values to unpack

似乎空字符串在这里绊倒我。是否有一个函数我应该应用于row来使这项工作?我需要进一步单独使用这些变量。感谢。

 def encodevar(x):
     return x

 row = ['85123', '', '123 The Address', '', '', 'TUCSON', 'AZ ', 'The Company Name', '', '']
 for zip5,zip4,strname,strnumber,strsuite,city,state,busname,lname,fname in row:
            HHid = encodevar( zip5 )     +\
                   encodevar( zip4 )     +\
                   encodevar( stname )   +\
                   encodevar( stnumber ) +\
                   encodevar( stsuite )  +\
                   encodevar( busname )

1 个答案:

答案 0 :(得分:3)

您正在结束 row,这意味着每个元素都是单独迭代的。

只需将直接分配给您的变量:

zip5, zip4, strname, strnumber, strsuite, city, state, busname, lname, fname = row

因为您循环了各个值,所以您试图将zip5值解包为10个名称:

zip5, zip4, strname, strnumber, strsuite, city, state, busname, lname, fname = '85123'
然后,Python将该字符串值'85123'视为5个字符的序列,发现这5个字符不适合10个名称,抛出您看到的异常。