Trabajar con archivos JSON en Python

Trabajar con archivos JSON en Python es muy sencillo gracias a la librería estándar json. Esta librería nos proporciona herramientas para convertir datos de Python en formato JSON y viceversa.

¿Qué es JSON?

JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y de fácil lectura. Se basa en pares clave-valor y es ampliamente utilizado para transmitir datos entre un servidor y una aplicación web.

¿Cómo trabajar con JSON en Python?

1. Importar la librería:

Python
import json

2. Leer un archivo JSON:

Python
with open('data.json', 'r') as f:
    data = json.load(f)

Esto cargará el contenido del archivo data.json en una variable Python, que generalmente será un diccionario o una lista.

3. Escribir en un archivo JSON:

Python
data = {'nombre': 'Juan', 'edad': 30}
with open('nuevo_archivo.json', 'w') as f:
    json.dump(data, f)

Esto creará un nuevo archivo llamado nuevo_archivo.json y escribirá el diccionario data en formato JSON.

Ejemplo completo:

Python
import json

# Leer datos de un archivo JSON
with open('productos.json', 'r') as f:
    productos = json.load(f)

# Acceder a los datos
for producto in productos:
    print(f"Nombre: {producto['nombre']}, Precio: ${producto['precio']}")

# Agregar un nuevo producto
nuevo_producto = {'nombre': 'Naranja', 'precio': 1.2, 'cantidad': 15}
productos.append(nuevo_producto)

# Escribir los datos modificados
with open('productos_actualizado.json', 'w') as f:
    json.dump(productos, f, indent=4)

Funciones útiles de la librería json:

  • json.load(f): Carga un objeto JSON desde un archivo.
  • json.dump(obj, f): Escribe un objeto Python en un archivo JSON.
  • json.loads(s): Convierte una cadena JSON en un objeto Python.
  • json.dumps(obj): Convierte un objeto Python en una cadena JSON.

Consideraciones importantes:

  • Estructura de datos: La estructura de los datos en JSON se mapea a diccionarios y listas en Python.
  • Indentación: El argumento indent en json.dump se utiliza para formatear el JSON con sangría, lo que mejora la legibilidad.
  • Manejo de errores: Siempre es recomendable incluir un bloque try-except para manejar posibles excepciones, como archivos no encontrados o datos JSON inválidos.

Ejercicio:

Crea un archivo JSON que represente una lista de tus libros favoritos. Cada libro debe tener un título, autor y año de publicación. Luego, escribe un programa en Python que:

  1. Lea el archivo JSON.
  2. Calcule el número total de libros.
  3. Imprima una lista de todos los libros publicados después de un año específico (por ejemplo, 2010).
  4. Agregue un nuevo libro a la lista.
  5. Guarde los cambios en un nuevo archivo JSON.


Comentarios

Entradas más populares de este blog

Tratamiento de excepciones

Agregación

Composición