NSI 1ère

Exemple d'exploitation d'une table de données

L'objectif de l'activité est d'utiliser les techniques vues dans la partie "Traitement de données en tables" pour exploiter un fichier de données réelles.

Présentation des données

Télécharger sur cette page le fichier de données tcl_sytral.tclarret.json au format JSON (attention, PAS GeoJSON) et l'enregistrer dans un dossier local. Ce fichier de données concerne les arrêts du réseau de transports en commun lyonnais (TCL).

Exécuter le code suivant pour charger les données après avoir remplacé les pointillés à la ligne 2 par le chemin du dossier où vous avez enregistré le fichier.

  1. import os,json
  2. os.chdir("....")
  3. f=open("tcl_sytral.tclarret.json",encoding='utf-8')
  4. s=f.read();
  5. f.close()
  6. j=json.loads(s)
  7. arrets=j["values"]

Après l'exécution de ce codes la variable arrets est une liste de dictionnaires ayant les mêmes descripteurs, dont un exemple est donné ci-dessous. Les noms des descripteurs (champs) sont en caractères gras:

{'nom': 'Ampere','escalator': False,'pmr': False,'desserte': 'S16A:A,S3B:A','last_update': '2020-12-05 01:31:22','ascenseur': False,'gid': 10529,'last_update_fme': '2020-12-05 06:00:10','id': 55}
    Explications sur les champs des enregistrements :
  • Le champ "nom" de type chaîne de caractères indique le nom de l'arrêt.
  • Les champs 'escalator','pmr' et 'ascenseur' sont des booléens indiquant la présence ou non d'aménagements à cet arrêts. Le champ 'pmr' indique en particulier si l'arrêt est accesible aux personnes à mobilité réduite.
  • Le champ 'desserte' indique quelles sont les lignes qui déservent l'arrêt. Chaque ligne est représentée par son identifiant suivi de deux points et de la lettre 'A' ou 'R'. Les différentes lignes sont séparées par des virgules.
  • Les champs 'id' et 'gid' sont des identifiants au format entier.
  • Les champs 'last_update' et 'last_update_fme' concernent la date et l'heure de la dernière mise à jour du fichier, qui est actualisé quotidiennement.
Dans un tableau les données pourraient être visualisées ainsi :

Analyse des données

Méthodes dont vous pourrez avoir besoin pour répondre aux questions:
  • Pour obtenir une liste sans répétitions, utiliser  list(set(...)) .
    Par exemple
    >>>ma_liste=['A','B','B','C','A','D','C']
    >>>ma_liste=list(set(ma_liste))
    >>>ma_liste
    ['D', 'C', 'B', 'A']

  • La méthode  split  permet de séparer une chaine de caractères en une liste de chaînes de caractères, le caractère passé en paramètre servant de séparateur.
    Par exemple :
    >>>chaine="pain, beurre, confiture"
    >>>coupe_virgule=chaine.split(',')
    >>>coupe_virgule
    ['pain', ' beurre', ' confiture']
    >>>coupe_u=chaine.split('u')
    >>>coupe_u
    ['pain, be', 'rre, confit', 're']

Répondre aux questions suivantes en utilisant du code Python. Faire valider les réponses au fur et à mesure.
Dans la suite (exercices 4 à 11) , un "arrêt" correspond à un enregistrement (une ligne) de la table.
Exercices bonus :