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

Python中csv.DictReader对象不可下标访问的问题解决求助

解决csv.DictReader的TypeError错误:"'DictReader' object is not subscriptable"

问题原因

csv.DictReader是可迭代的行集合对象,并非单个字典,不能直接用my_dictionary['Name']这种下标语法访问数据。循环中的row变量才是对应每行的字典,要获取每行的Name值,必须通过row来访问。

你的原始代码

import csv

my_dictionary = csv.DictReader(open('test_data.csv'))
for row in my_dictionary:
   print(my_dictionary['Name'])

你的test_data.csv内容

Name,number,Colors
John,2,blue
Logan,3,red
Jimmy,4,green
Logan,6,green
Steven,8,orange

修正后的代码

推荐使用with语句自动管理文件句柄,避免资源泄漏:

import csv

with open('test_data.csv', 'r') as file:
    reader = csv.DictReader(file)
    # 收集所有Name值并按期望格式输出
    names = [row['Name'] for row in reader]
    print(', '.join(names))

如果需要逐行处理后再拼接输出,也可以写成:

import csv

with open('test_data.csv', 'r') as file:
    reader = csv.DictReader(file)
    names = []
    for row in reader:
        names.append(row['Name'])
    print(', '.join(names))

正确输出

John, Logan, Jimmy, Logan, Steven

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:55:08