Introducción

JSON (JavaScript Object Notation) es un formato de texto ligero para el intercambio de datos. Es fácil de leer y escribir para los humanos y fácil de analizar y generar para las máquinas. JSON se utiliza comúnmente para transmitir datos en aplicaciones web (por ejemplo, enviar datos desde el servidor al cliente para que se muestren en una página web).

Conceptos Clave

  • JSON: Un formato de intercambio de datos basado en texto que es completamente independiente del lenguaje.
  • Serialización: El proceso de convertir un objeto en una cadena JSON.
  • Deserialización: El proceso de convertir una cadena JSON en un objeto.

Sintaxis de JSON

JSON se compone de pares clave/valor. Las claves son cadenas y los valores pueden ser cadenas, números, objetos, arreglos, true, false o null.

{
  "nombre": "Juan",
  "edad": 30,
  "casado": true,
  "hijos": ["Ana", "Luis"],
  "direccion": {
    "calle": "Calle Falsa 123",
    "ciudad": "Springfield"
  }
}

Trabajando con JSON en Python

Python proporciona el módulo json para trabajar con datos JSON. Este módulo incluye métodos para serializar y deserializar datos JSON.

Serialización (Convertir un Objeto en JSON)

Para convertir un objeto de Python en una cadena JSON, utilizamos el método json.dumps().

import json

# Un diccionario de Python
persona = {
    "nombre": "Juan",
    "edad": 30,
    "casado": True,
    "hijos": ["Ana", "Luis"],
    "direccion": {
        "calle": "Calle Falsa 123",
        "ciudad": "Springfield"
    }
}

# Convertir el diccionario a una cadena JSON
persona_json = json.dumps(persona, indent=4)
print(persona_json)

Deserialización (Convertir JSON en un Objeto)

Para convertir una cadena JSON en un objeto de Python, utilizamos el método json.loads().

import json

# Una cadena JSON
persona_json = '''
{
    "nombre": "Juan",
    "edad": 30,
    "casado": true,
    "hijos": ["Ana", "Luis"],
    "direccion": {
        "calle": "Calle Falsa 123",
        "ciudad": "Springfield"
    }
}
'''

# Convertir la cadena JSON a un diccionario de Python
persona = json.loads(persona_json)
print(persona)

Lectura y Escritura de Archivos JSON

Escribir JSON a un Archivo

Para escribir datos JSON en un archivo, utilizamos el método json.dump().

import json

# Un diccionario de Python
persona = {
    "nombre": "Juan",
    "edad": 30,
    "casado": True,
    "hijos": ["Ana", "Luis"],
    "direccion": {
        "calle": "Calle Falsa 123",
        "ciudad": "Springfield"
    }
}

# Escribir el diccionario en un archivo JSON
with open('persona.json', 'w') as archivo:
    json.dump(persona, archivo, indent=4)

Leer JSON desde un Archivo

Para leer datos JSON desde un archivo, utilizamos el método json.load().

import json

# Leer el archivo JSON y convertirlo en un diccionario de Python
with open('persona.json', 'r') as archivo:
    persona = json.load(archivo)

print(persona)

Ejercicios Prácticos

Ejercicio 1: Serialización y Deserialización

  1. Crea un diccionario de Python que represente a una persona con los siguientes campos: nombre, edad, casado, hijos (una lista de nombres) y dirección (un diccionario con calle y ciudad).
  2. Convierte el diccionario a una cadena JSON y muéstralo en la consola.
  3. Convierte la cadena JSON de nuevo a un diccionario de Python y muéstralo en la consola.

Solución

import json

# Paso 1: Crear el diccionario
persona = {
    "nombre": "Juan",
    "edad": 30,
    "casado": True,
    "hijos": ["Ana", "Luis"],
    "direccion": {
        "calle": "Calle Falsa 123",
        "ciudad": "Springfield"
    }
}

# Paso 2: Convertir el diccionario a una cadena JSON
persona_json = json.dumps(persona, indent=4)
print("Cadena JSON:")
print(persona_json)

# Paso 3: Convertir la cadena JSON de nuevo a un diccionario
persona_dict = json.loads(persona_json)
print("\nDiccionario de Python:")
print(persona_dict)

Ejercicio 2: Lectura y Escritura de Archivos JSON

  1. Escribe el diccionario creado en el Ejercicio 1 a un archivo JSON llamado persona.json.
  2. Lee el archivo persona.json y convierte su contenido en un diccionario de Python.
  3. Muestra el diccionario en la consola.

Solución

import json

# Paso 1: Escribir el diccionario a un archivo JSON
with open('persona.json', 'w') as archivo:
    json.dump(persona, archivo, indent=4)

# Paso 2: Leer el archivo JSON y convertirlo en un diccionario de Python
with open('persona.json', 'r') as archivo:
    persona_leida = json.load(archivo)

# Paso 3: Mostrar el diccionario en la consola
print("Diccionario leído del archivo JSON:")
print(persona_leida)

Conclusión

En esta sección, hemos aprendido cómo manejar datos JSON en Python utilizando el módulo json. Hemos cubierto la serialización y deserialización de datos, así como la lectura y escritura de archivos JSON. Estos conocimientos son fundamentales para trabajar con APIs y otros servicios web que utilizan JSON como formato de intercambio de datos. En la próxima sección, exploraremos operaciones de archivos y directorios en Python.

Curso de Programación en Python

Módulo 1: Introducción a Python

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados