需要超过一个值进行解包
movies = defaultdict(int)
for line in open('trial.txt', "r"):
user,movie,rating,time = line.rstrip('\n').split('::')
movies[movie] += 1
对于下面这一行代码,我总是遇到一个我不明白的错误:
user, movie, rating,time = line.rstrip('\n').split('::')
ValueError: need more than 1 value to unpack
我总是能打印出这一行,而且它确实有4个部分。到底哪里出问题了呢?谢谢!
1 个回答
2
看起来你的文件里有空行。你需要跳过这些空行,以避免出现这个错误,或者至少要检查一下你想要提取的值的数量是否正确:
movies = defaultdict(int)
for line in open('trial.txt', "r"):
values = line.rstrip('\n').split('::')
if len(values) == 4:
user,movie,rating,time = values
movies[movie] += 1
else:
print "Non-valid format: %s" % line