需要超过一个值进行解包

-4 投票
1 回答
1138 浏览
提问于 2025-04-17 18:33

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

撰写回答