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

Python解析CSV按索引取列为何出现KeyError错误?

问题原因与解决方案

错误原因

  • 你使用的csv.DictReader返回的每一行是字典类型,而非列表。字典只能通过键(比如列名)取值,不能用数字索引(如row[0])访问,因此会抛出KeyError: 0。
  • 从你的输出示例来看,CSV文件没有表头行,DictReader会自动把第一行数据当作列名(即字典的键),后续行的键都是第一行的数字字符串,自然找不到0这个键。

解决方法

如果需要按数字索引获取指定列,直接用csv.reader替代DictReader即可——它返回的每一行是列表,支持数字索引:

import csv
import os

csv_file_path = r'C:\Users\ctumbs\OneDrive\General - Vision Dataset\numbers.csv'

with open(csv_file_path) as csv_file:
    reader = csv.reader(csv_file)
    for row in reader:
        # 按索引取第0、2、4、6列,注意确保每行列数足够,避免索引越界
        print(row[0], row[2], row[4], row[6])

如果非要保留DictReader(比如需要用到列名的场景),可以把字典转成列表后再按索引取值,但这种方式不如直接用csv.reader直观:

import csv
import os

csv_file_path = r'C:\Users\ctumbs\OneDrive\General - Vision Dataset\numbers.csv'

with open(csv_file_path) as csv_file:
    reader = csv.DictReader(csv_file)
    for row in reader:
        row_list = list(row.values())
        print(row_list[0], row_list[2], row_list[4], row_list[6])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:17:24