0

受到Read 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 )
4

1 回答 1

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 个名称,并抛出您看到的异常。

于 2013-05-14T14:54:44.450 回答