from json import loads with open('data.json', 'r') as f: raw_data = f.read() f.close() data = loads(raw_data) # Data for further analyze stud_i = [] stud_score = [] stud_80_plus = [] for i in range(len(data)): stud_i.append(i) average_score = (data[i]['grades']['math'] + data[i]['grades']['physics'] + data[i]['grades']['history'])/3 stud_score.append(average_score) if data[i]['grades']['math'] > 80: stud_80_plus.append(i) average_best = max(stud_score) aver_i = stud_score.index(average_best) aver = data[aver_i] print(f'''Student with best average score: {aver['name']} {aver['age']} {aver['grades']['math']}-{aver['grades']['physics']}-{aver['grades']['history']} ''') print('Students with 80+ math scores:') for i in stud_80_plus: stud = data[i] print(f'''{stud['name']} {stud['age']} {stud['grades']['math']}-{stud['grades']['physics']}-{stud['grades']['history']}''')