为什么会出现“ IndexError:列表索引超出范围”?

时间:2018-12-09 15:42:40

标签: python json list

我知道这个错误有很多线程,但是我研究了很多线程,但仍然无法理解。我设法像这样从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

我想知道这是否是我的大量数据的问题。我找到了这个数据,看起来似乎正确,但是又为什么错误是关于索引超出范围?是清单吧?为何其他2个列表也起作用?我的记忆有问题吗?我不这么认为。可能在逻辑上有问题吗?像我,j和k索引?我不知道。

谢谢大家的帮助:)

0 个答案:

没有答案