我知道这个错误有很多线程,但我研究了很多,仍然无法理解 . 我设法将数据从(奇怪的格式化)json解析为python,如下所示:
data = ....all my json data
整个想法是我有6个块,每个72个试验 . 我想把它们分成三个列表 . 1和2块进入第一个列表,3和4进入第二个列表,5和6进入第三个列表 . json中的所有块都是7,这就是我从1开始for循环的原因 . 这是我将所有数据都归入上述变量之后的代码:
high_trials=[]
medium_trials=[]
low_trials=[]
for i in range(0,len(data)-1): #parse all the participant's experiment json objects
blocks = data[i].get("json").get("blocks") #parse each experiments "blocks" json object
for j in range(1, len(blocks)-1): #6 blocks (7 blocks expept block 0 which is the training block and it should be excluded)
for k in range(0,71): #72 trials each block
if (j<=2):
high_trials.append(blocks[j][k]) #gather all the HIGH contigency trials of this block
elif (j<=4):
medium_trials.append(blocks[j][k]) #gather all the MEDIUM contigency trials of this block
else:
low_trials.append(blocks[j][k]) #gather all the LOW contigency trials of this block
high_trials和medium_trials就像一个魅力 . 他们收集了我想要的所有试验 . 出于某种原因,在i = 5和j = 5且k = 65时出现此错误:
Traceback (most recent call last):
File "C:\Users\user\Desktop\res-cog-exp.py", line 75285, in <module>
low_trials.append(blocks[j][k])
IndexError: list index out of range
我想知道这是否是我的巨大数据的问题 . 我找到了这些数据并且看起来是正确的,但是为什么错误是关于索引超出范围?这是一个清单吧?那么为什么其他两个名单有效呢?我的记忆有问题吗?我不这么认为 . Probabely这是逻辑问题吗?喜欢i,j和k索引?我想不出来 .
感谢大家的帮助 :)