Я знаю, что для этой ошибки есть много тем, но я изучил многие из них и до сих пор не могу понять.Мне удалось проанализировать данные из (странного форматирования) json в python следующим образом:
data = ....all my json data
Вся идея в том, что у меня есть 6 блоков по 72 испытания в каждом.Я хочу разделить их на три списка.1 и 2 блоки идут в первом списке, 3 и 4 - во второй список, а 5 и 6 - в третий.Все блоки равны 7 в json, поэтому я начинаю цикл for с 1. Это мой код после импортирования всех моих данных в вышеуказанную переменную:
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 индексы?Я не мог понять.
Спасибо всем за помощь :)