Cours de développement Python avancé
Chapitre
>
Niveau
Modules de sérialisation
Module JSON
Objectif
Rendez-vous à la station de service et assurez-vous que les données sont correctement stockées en utilisant le module JSON pour formater les fichiers.
Il y a une station de service au sud du bâtiment annexe dans la zone de nouvelle construction. Toute cette zone va être réaménagée pour la plantation de cultures. La station dispose de plusieurs terminaux traitant des données pour le nouveau projet. Nous pourrions saisir manuellement les données, mais cela prendrait beaucoup de temps. Pour automatiser le traitement des données, nous pouvons utiliser JSON, qui signifie JavaScript Object Notation. Il s’agit d’un format de données indépendant des langages de programmation et qui stocke les informations dans un format facilement lisible, adapté au stockage et à la transmission.
Pour utiliser JSON avec Python, nous pouvons faire import json, ce qui nous donnera accès aux fonctions JSON. Pour nos besoins, nous utiliserons les fonctions suivantes :
json.loads(): convertit une chaîne JSON en données Python. Elle prend un argument, à savoir la chaîne que vous souhaitez analyser en Python.json.dumps(): convertit des données Python en objet chaîne JSON. Cette fonction peut prendre jusqu’à quatre arguments, seul le premier est obligatoire. Ils sont les suivants :- Les données Python que vous souhaitez convertir en JSON : elles peuvent être de types dict (dictionnaires), list (listes), tuple (tuples), str (chaîne de caractères), int (entier), float (flottant), bool (booléen) et None.
indent: nombre d’espaces que vous souhaitez ajouter au début de chaque niveau de données.separators: éléments que vous souhaitez faire apparaître entre et/ou à la fin des points de données.sort_keys: trie les clés d’un dictionnaire par ordre alphabétique si vous convertissez un type dict.
Pour commencer, dirigez-vous vers la marque X dorée dans le poste avancé à gauche et placez-vous face au bureau où se trouve le mémo. Utilisez la fonction read() pour vérifier les informations nécessaires à la confirmation du statut du terminal et prenez-en note. Marchez ensuite jusqu’à la marque X claire devant le terminal ; il y a une constante nommée transmission. Utilisez json.dumps() pour la formater en JSON afin de pouvoir la convertir, comme ceci : transmission = json.dumps(transmission).
Créez un dictionnaire nommé load et stockez la valeur de json.loads() en lui passant la constante transmission comme argument. Cela convertira le JSON en Python, ce qui permettra d’accéder facilement à ses informations. Utilisez la fonction speak() avec les clés indiquées dans le mémo en utilisant le dictionnaire load que vous venez de créer. Par exemple : player.speak(load["system"]), faites-le pour toutes les clés.
Après avoir vérifié les informations sur le terminal, descendez vers la station, entrez à l’intérieur et dirigez-vous vers la marque X claire sur le tapis vert. Consultez le mémo avec la fonction read(), vérifiez et notez les valeurs. Dans l’éditeur, il y a un dictionnaire pré-écrit nommé profile; complétez les valeurs manquantes avec les informations du mémo.
Allez à la marque X sombre sur le tapis vert, placez-vous face au terminal et créez une variable nommée transfer dans laquelle vous stockez la valeur de json.dumps() en passant le dictionnaire profile comme seul argument. Cela convertit le dictionnaire en une chaîne JSON. Utilisez la fonction pré-écrite display() et ajoutez-y le JSON transfer pour stocker les données dans le terminal.
Allez à la marque X sombre sur le tapis rouge et utilisez la fonction read() pour vérifier les données déjà entrées dans le terminal. Les données ne sont pas présentées dans un format approprié ; pour les stocker correctement, elles doivent être formatées en JSON. Les données sont stockées dans une constante dictionnaire appelée red_data. Créez une variable nommée red_storage et stockez-y la valeur de la fonction json.dumps().
Pour formater les données, ajoutez les arguments suivants à la fonction : passez red_data pour convertir la constante en JSON, ajoutez indent et affectez-lui la valeur 5 pour formater le texte, ajoutez separators et indiquez ("- ", " = ") pour ajouter ces symboles à la fin de chaque ligne. La ligne doit ressembler à : red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Utilisez la fonction pré-écrite display() et passez-lui la chaîne JSON red_storage pour stocker et afficher les données formatées.
Allez à la marque X sombre sur le tapis bleu, placez-vous face au terminal et utilisez la fonction read(). Comme précédemment, les données ne sont pas correctement stockées et doivent être formatées, mais également triées. Les données sont stockées dans une constante nommée blue_data. Créez une variable nommée blue_storage et stockez-y la valeur de la fonction json.dumps().
Pour les arguments : passez blue_data pour convertir la constante en JSON, ajoutez indent et affectez-lui la valeur 4 pour formater le texte, ajoutez separators et indiquez (".0", " = ") pour ajouter ces symboles à la fin de chaque ligne. En plus de ces arguments, ajoutez sort_keys comme dernier argument et affectez-lui la valeur True, comme ceci : sort_keys=True. Utilisez la fonction pré-écrite display() et passez-lui la chaîne JSON blue_storage pour stocker et afficher les données triées et ainsi terminer le niveau.