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