Python ';io.BufferedReader';对象不可下标';错误

Python ';io.BufferedReader';对象不可下标';错误,python,psychopy,Python,Psychopy,我正在编写一个Stroop任务,用于心理变态实验。我试图画图像和文本刺激,但我得到了错误信息(如下所示) 我试着查看google/stackoverflow页面,但不理解这些错误消息(因此很难修复这些代码) #----准备开始例行“指令”------- t=0 指令时钟。复位()#时钟 frameN=-1 continueRoutine=True #为每次重复更新零部件参数 ready=event.BuilderKeyResponse() #跟踪哪些组件已完成 指令组件=[instrText,就

我正在编写一个Stroop任务,用于心理变态实验。我试图画图像和文本刺激,但我得到了错误信息(如下所示)

我试着查看google/stackoverflow页面,但不理解这些错误消息(因此很难修复这些代码)

#----准备开始例行“指令”-------
t=0
指令时钟。复位()#时钟
frameN=-1
continueRoutine=True
#为每次重复更新零部件参数
ready=event.BuilderKeyResponse()
#跟踪哪些组件已完成
指令组件=[instrText,就绪]
对于说明组件中的此组件:
如果hasattr(此组件“状态”):
thisComponent.status=未启动
#读取刺激文件
试验=打开('cog2.csv','rb')
imageFile=0 35; imageFile=trials[trialNumber][Column]
corrAns=1#corrAns=trials[trialNumber][Column]
全等=2#全等=试验[试验编号][列]
stimCat=3#stimCat=试验[试验编号][列]
叠加=4#叠加=试验[试验编号][列]
Word=5#Word=trialNumber[试验编号][列]
#将文本字符串转换为刺激
文本刺激=[]
图像刺激=[]
关于审判中的审判:

textStimulis.append(visual.TextStim(win,text=trials[Word])变量
trials
是一个文件对象(from
trials=open('cog2.csv','rb')
),您试图通过
trials[Word]
列表访问它,因此出现错误

您应该使用
csv.reader
方法将文件读取为csv,这样
trial
将以列表的形式分配给每一行,并且您可以使用您想要的索引访问每一列:

import csv
for trial in csv.reader(trials):
    textStimuli.append(visual.TextStim(win, text=trial[Word]))
    imageStimuli.append(visual.ImageStim(win, size=[0.5, 0.5], image=trial[imageFile]))

我遵循了您编写的内容,但出现了另一个错误:对于csv.reader(试用版)中的试用版:_csv.error:iterator应该返回字符串,而不是字节(您是否以文本模式打开文件?)“我做了一些事情,并尝试将(encoder=utf-8)添加到trials=open('cog2.csv')但这也不起作用。你还有其他建议吗?啊,是的,你应该以文本模式打开文件。请尝试
trials=open('cog2.csv','r')
而不是
trials=open('cog2.csv','rb'))
。我以前也尝试过,但它显示了另一个错误:TypeError:“'u io.TextIOWrapper'对象不可订阅。所以我一直在这两个错误之间来回切换。在以文本模式打开文件后,您是否使用了
csv.reader
?是的,我编写了trials=open('cog2.csv','r')),它位于#读取刺激文件下,然后添加了“在csv.reader中进行试验(试验):…”位。但这仍然是出现的错误吗?
#### Running: C:\Users\Sophie\OneDrive\Spring '19\Research\PsychoPy\Bejj\Test_3_22_19.py #####
Traceback (most recent call last):
  File "C:\Users\Sophie\OneDrive\Spring '19\Research\PsychoPy\Bejj\Test_3_22_19.py", line 203, in <module>
    textStimuli.append(visual.TextStim(win, text=trials[Word]))
TypeError: '_io.BufferedReader' object is not subscriptable
import csv
for trial in csv.reader(trials):
    textStimuli.append(visual.TextStim(win, text=trial[Word]))
    imageStimuli.append(visual.ImageStim(win, size=[0.5, 0.5], image=trial[imageFile]))