python - 太多值无法解包 for 循环计数列表中的值时出现错误

标签 python python-3.x

在Python 3中,我试图计算这个csv文件中的评级数量,我将其拉入列表中,但是当我尝试实际开始操作列表中的数据时,我也遇到了错误我的 for 循环中需要解压许多值(预计有 5 个),但我不知道为什么。

with open(r'C:\Users\t_goo\Pictures\coding\dataset\smartphone- 
review\amazon_alexa.csv', mode='r') as alexa:

data = list(alexa.read().split(","))
print(data)

# rating, date, variation, review, feedback
for rating, data, variation, review, feedback in data:
    rating = rating.count()
    print(rating)

当我尝试运行此程序时,出现以下错误:

line 7, in <module>
for rating, data, variation, review, feedback in data:
ValueError: too many values to unpack (expected 5)

这是原始数据的示例:

rating,date,variation,verified_reviews,feedback
5,31-Jul-18,Charcoal Fabric,Love my Echo!,1
5,31-Jul-18,Charcoal Fabric,Loved it!,1

最佳答案

data = list(alexa.read().split(","))

一次读取整个文件并在 , 处分割它 - 您需要首先将文件分割成行,然后用逗号分割每一行,所以您需要这样做

data = [y.strip().split(",") for y in alexa.splitlines() if y.strip()]

这将产生一个列表列表。

然后您可以使用

for rating, data, variation, review, feedback in data:
    pass

对其进行操作

关于python - 太多值无法解包 for 循环计数列表中的值时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160922/

相关文章:

python - 为带有祖先的 key 创建一个好看的 url

python - 将文本 append 到文件。将文本添加到指定的 txt 文件。

Python itertools—takewhile() : multiple predicates

python - 在Python正则表达式中循环多个模式

python - 将 asyncio.Queue 用于生产者-消费者流程

python Pandas : try to read txt file but showed NaN

python - SLURM srun 不并行运行 python 脚本,但可以访问并行资源

python - 字段的默认值

python - nltk 无法找到 mace4

python - PyMongo 游标以最快的方式列出可能