Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Módulos de serialización
Módulo JSON
Objetivo
Dirígete a la estación de servicio y asegúrate de que los datos estén almacenados correctamente utilizando el módulo JSON para formatear archivos.
Hay una estación de servicio al sur del edificio anexo en la nueva zona de construcción, toda esta área va a ser rehabilitada para sembrar cultivos. La estación cuenta con una variedad de terminales que procesan datos para el nuevo desarrollo, podemos trabajar escribiendo los datos manualmente, pero eso tomaría mucho tiempo. Para el proceso de manejo de datos podemos usar JSON, que significa Notación de Objetos de JavaScript, este es un formato de datos independiente de los lenguajes de programación y almacena información de manera fácil de leer para el almacenamiento y transmisión de datos.
Para usar JSON con python podemos utilizar import json lo que nos dará acceso a las funciones de JSON, para nuestros propósitos utilizaremos las siguientes funciones:
json.loads(): Convierte una cadena JSON en un dato de Python, toma un argumento, que es la cadena que deseas analizar y convertir a Python.json.dumps(): Convierte datos de Python en una cadena objeto JSON, esta función puede tomar hasta cuatro (4) argumentos, siendo solo el primero obligatorio para usar la función. Son los siguientes:- Datos de Python que deseas convertir a JSON: pueden ser de los siguientes tipos de datos: diccionarios, listas, tuplas, cadena, entero, flotante, booleano y tipos de datos None.
indent: número de espacios que te gustaría agregar al inicio de cada punto de datosseparators: estos son los símbolos que te gustaría que aparecieran entre y/o al final de los puntos de datos.sort_keys: ordena las claves del diccionario alfabéticamente si estás convirtiendo un tipo de archivo de diccionario.
Para comenzar, dirígete a la marca dorada en forma de X en el puesto de avanzada a la izquierda y enfrenta el escritorio con el memo. Utiliza la función read() para verificar la información requerida para confirmar el estado del terminal y toma nota de ella. Camina hacia la marca dorada en forma de X frente al terminal, hay una constante llamada transmission , utiliza json.dumps() para formatearla como un json para poder convertirla, de esta manera: transmission = json.dumps(transmission) .
Crea un diccionario llamado load y almacena el valor de json.loads() con la constante transmission como argumento. Esto convertirá el Json en Python para que su información sea fácilmente accesible. Utiliza la función speak() con las claves descritas en el memo y usando el diccionario load que creaste. Por ejemplo: player.speak(load["system"]) , haz esto para todas las claves.
Después de verificar la información en el terminal, camina hacia la estación, entra y dirígete a la marca dorada en forma de X sobre la alfombra verde. Revisa el memo utilizando la función read(), verifica y anota los valores, en el editor hay un diccionario pre-escrito llamado profile, completa los valores que faltan con la información del memo.
Dirígete a la marca oscura en forma de X sobre la alfombra verde, enfrenta el terminal y crea una variable llamada transfer y almacena el valor de json.dumps() añadiendo el diccionario profile como el único argumento. Haciendo esto convertimos el diccionario en un objeto de cadena json. Utiliza la función pre-escrita display() y añade el Json transfer para almacenar los datos en el terminal.
Dirígete a la marca oscura en forma de X sobre la alfombra roja y utiliza la función read() para verificar los datos ya ingresados en el terminal. Los datos no se presentan en un formato adecuado, para almacenar correctamente la información necesita estar formateada y almacenada en un Json. Los datos se almacenan en una constante de diccionario llamada red_data, crea una variable llamada red_storage y almacena el valor de la función json.dumps().
Para formatear los datos, añade los siguientes argumentos a la función: añade red_data para convertir la constante a Json, añade indent y configúralo a 5 para formatear el texto, añade separators y agrega ("- ", " = ") para añadir estos símbolos al final de cada línea. La línea debería verse así: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")) . Utiliza la función pre-escrita display() y añade el objeto de cadena Json red_storage para almacenar y mostrar los datos formateados.
Dirígete a la marca oscura en forma de X sobre la alfombra azul, enfrenta el terminal y utiliza la función read(), al igual que antes los datos no están almacenados correctamente y necesitan ser formateados, pero también ordenados. Los datos se almacenan en una constante llamada blue_data , crea una variable llamada blue_storage y almacena el valor de la función json.dumps().
Para los argumentos: añade blue_data para convertir la constante a Json, añade indent y configúralo a 4 para formatear el texto, añade separators y agrega (".0", " = ") para añadir estos símbolos al final de cada línea. Además de esto, añade el argumento sort_keys al final y configúralo a True, de esta manera: sort_keys=True . Utiliza la función pre-escrita display() y añade el objeto de cadena Json blue_storage para almacenar y mostrar los datos ordenados y completar el nivel.