You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python读取CSV时报ValueError: too many values to unpack (expected 2)错误

错误原因分析
  • csv.reader迭代每一行时会返回当前行所有字段组成的列表,你写的for header[2],row in csvreader要求每一行只有2个字段才能正常解包赋值,而你的Data.csv实际每行字段数大于2,因此触发值解包失败报错
  • 额外逻辑问题:你将循环的第一个解包值赋值给header[2],会直接覆盖已读取的表头第三列的值,属于完全不必要的错误写法
  • 你提供的代码未导入csv模块,即使解包问题修复,运行时还会触发NameError报错
修复后的正确代码

假设你要提取的用户名存放在CSV的第三列(索引为2,索引从0开始计数),修复后代码如下:

import csv

# 使用with上下文管理器自动管理文件资源,无需手动调用close()
with open("Data.csv", encoding="utf-8") as file:
    csvreader = csv.reader(file)
    header = next(csvreader)
    usernames = []
    for row in csvreader:
        # 直接提取当前行第三列的用户名存入列表
        usernames.append(row[2])
print(usernames)
补充说明
  • 如果用户名不在第三列,修改row[2]中的索引即可,第一列对应索引0、第二列对应索引1,以此类推
  • 如果你的CSV使用非逗号的特殊分隔符(比如分号、制表符),可以在csv.reader(file)中添加delimiter参数指定分隔符,例如csv.reader(file, delimiter=';')
  • 如果读取文件出现编码错误,可以尝试将encoding="utf-8"修改为encoding="gbk"适配Windows系统下的中文编码文件

内容的提问来源于stack exchange,提问作者PONIO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:24:03