NSI,2022-2023,TP entrainement liste,dico

On considère des données concernant des écoles :https://opendata.lillemetropole.fr/explore/dataset/effectifs-scolaires-par-ecole-armentieres/information/
Récupérer les données json et compléter le programme python ci-dessous pour qu’il permette de classer ces écoles par effectif décroissant.

import json
# on ouvre le fichier json 

with open(...................................) as mon_fichier:
    # on stocke les donnees
    donnees = json.load(mon_fichier)
    
def recherche_max_eleves(data):
    '''
    retourne l'index dans la liste data de
    l'école ayant le plus d'élèves
    : data : list
    >>>recherche_max(donnees)
    12
    '''
    # par defaut le nbre max est le nombre d'eleves
    # de la premiere ecole de mes data
    max_eleves=..............................
    # par defaut l'indice max est l'indice de la premiere
    # ecole de mes data
    indice_max=............................
    # on parcourt les data par l'indice i
    for i in range(........................):
        # si le nombre d'eleves de l'ecole d'indice i
        # est supérieur au max
        if ...................... > max_eleves:
            # il devient le nouveau max
            max_eleves=....................................
            # on memorise l'indice correspondant
            indice_max=.................
    # on retourne l'indice ou on a trouvé le max d'élèves
    return ...........................

def classement_par_nombre(mes_donnees):
    '''
    retourne la liste des écoles classées par
    effectif décroissant, chaque école étant identifiée
    par un dictionnaire ayant pour clés 'nom' et 'effectif'
    et les valeurs attribuées correspondantes
    '''
    # on fait une copie de mes_donnees
    data_a_classer=...............................
    # on crée une liste vide des data classees
    data_classees=.......................................
    # tant qu'il reste des datas à classer
    while ..................... >0:
        # on cherche l'indice correspondant au max d'eleves
        i=recherche_max_eleves(data_a_classer)
        # on crée un dictionnaire
        ecole=...................................
        # à la clé "nom" on attribue la valeur correspondant
        # au nom de l'ecole d'indice i de mes data à classer
        ...................=data_a_classer[i]['fields']['nom_de_l_ecole']
        # à la clé "effectif" on attribue la valeur correspondant
        # au nombre d'élèves de l'ecole d'indice i
        ecole["effectif"]=....................................
        # on ajoute le dictionnaire ecole à la liste des data classées
        ...............................
        # on supprime l'ecole des ecoles à classer grâce à son indice
        .................................
    # on renvoie les ecoles classées
    return ..........................
    

Proposition de correction :

import json
# on ouvre le fichier json 

with open("ecoles.json") as mon_fichier:
    # on stocke les donnees
    donnees = json.load(mon_fichier)

def recherche_max_eleves(data):
    max_eleves=data[0]["nombre_d_eleves"]
    indice_max=0
    for i in range(len(data)):
        if data[i]["nombre_d_eleves"] > max_eleves:
            max_eleves=data[i]["nombre_d_eleves"]
            indice_max=i
    return indice_max

def classement_par_nombre(mes_donnees):
    '''
    retourne la liste des écoles classées par
    effectif décroissant, chaque école étant identifiée
    par un dictionnaire ayant pour clés 'nom' et 'effectif'
    et les valeurs attribuées correspondantes
    '''
    data_a_classer=mes_donnees
    data_classees=[]
    while len(data_a_classer) >0:
        i=recherche_max_eleves(data_a_classer)
        ecole={}
        ecole["nom"]=data_a_classer[i]['nom_de_l_ecole']
        ecole["effectif"]=data_a_classer[i]['nombre_d_eleves']
        data_classees.append(ecole)
        del(data_a_classer[i])
    return data_classees