“ValueError:没有足够的值来解包预期为 12,得到 1”同时创建命名元组列表

问题描述

我正在尝试从 CSV 文件创建命名元组列表。错误出现在第 12 行(以movie_list 开头的那个)。它说没有足够的值来解包。我已经使用这种确切的方法完成了多个其他项目,并且从来没有错误。请不要建议替代方法,因为这是针对学校项目的,必须以这种方式完成。

Movie = namedtuple("Movie","index,title,release,user_rating,Metascore,imdb_Votes,plot,genre,runtime,revenue,actors,director")

    def read_data (file,encoding='utf-8'):
        with open(file):
            reader = csv.reader(file)
            next(reader)
            movie_list =[Movie(int(index),int(release),float(user_rating),float(Metascore),int(imdb_Votes),int(runtime),float(revenue),director)
                        for index,director in reader]
            
        return movie_list

解决方法

如果文件是文件路径之类的字符串,则读取器一次读取这个字符串 1 个字符,而不是实际文件。

with open(file,'r') as fh:
    reader = csv.read(fh)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...