为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 ValueError:在 Python 中要解压的值太多(预期为 3)?

如何修复 ValueError:在 Python 中要解压的值太多(预期为 3)?

FFIVE 2023-03-16 09:12:08
我有一个名为 的数据集records,数据集样本如下所示:user_id movie_id genre1       1001     action2       1002     drama3       1003     comedy4       1004     drama...     ...      ...    records我想通过以下方式迭代:for user, movie, genre in records:    print(user, movie, genre)它首先打印一些行,然后显示此错误:44892 113769 comedy44892 113769 drama...  ------------------------------------------------ ValueError Traceback (most recent call last) in ----> 1 for user, movie, genre in records:      2     print(user, movie, genre)ValueError: too many values to unpack (expected 3)出了什么问题以及如何解决?
查看完整描述

5 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您可以使用它来丢弃返回的任何额外数据

for user, movie, genre,*_ in records: 
   print(user, movie, genre)


查看完整回答
反对 回复 2023-03-16
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

我想将其添加为评论,但我无法添加代码片段。因此添加为答案


for item in records:

    print(item)

    user, movie, genre=item

您将在代码通过 ValueError 中断之前打印记录的值。


一旦您向我们展示了故障发生在什么记录上,就会更容易获得解决方案


笔记。如果您想忽略与预期模式不匹配的记录,您可以这样做


for item in records:

    try:

        user, movie, genre=item

    except ValueError:

        print("Failed at %s" % repr(item))

    else:

        print(item)


查看完整回答
反对 回复 2023-03-16
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您的数据集是否作为熊猫数据框加载?如果是的话,你可以做这样的事情


cols = ['user_id', 'movie_id', 'genre']

# Assuming df is the data frame you have

for ind in df.index:

  user_id, movie_id, genre = df.loc[ind, cols]

  print(user_id, movie_id, genre)

如果您在数据集中没有列名,也许自己添加它们是一个有效的步骤?


查看完整回答
反对 回复 2023-03-16
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

请检查您的数据集。可能有一些行的数据由制表符分隔,并且它正在将该行视为新列。因为这个错误被抛出。

例子 :

userid 电影类型

44892 113769 恐怖喜剧

在这里,如果您选择分隔符作为制表符/空格,那么它会将恐怖和喜剧视为不同的列。

或者你可以参考: “解包的值太多”异常


查看完整回答
反对 回复 2023-03-16
?
桃花长相依

TA贡献1860条经验 获得超8个赞

您的变量名称不同:

您在数据集中称它们user_idmovie_id、 和genre,但随后又将它们称为usermovie

尝试将其更改为:

for user_id, movie_id, genre in records:
   print(user_id, movie_id, genre)


查看完整回答
反对 回复 2023-03-16
  • 5 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信