19  Lectura de archivos JSON

JSON, que significa JavaScript Object Notation, es un formato liviano de intercambio de datos. Es crucial para trabajar con datos en aplicaciones web y APIs. Aprender a manejarlo con Python es esencial para desarrolladores que buscan eficiencia y flexibilidad.

Para cargar un JSON a python usamos la librería json, en específico, la la función load(),

# Importar libreria
import json

# Cargar archivo a python
with open('../../data/python/products.json', 'r') as file:
    products = json.load(file)

# Mostramos 
for i in products:
    print(i)
{'name': 'Laptop', 'price': 1200, 'quantity': 4, 'brand': 'BrandName', 'category': 'Electronics', 'entry_date': '2024-01-05'}
{'name': 'Mouse', 'price': 45, 'quantity': 120, 'brand': 'TechGear', 'category': 'Accessories', 'entry_date': '2024-02-10'}
{'name': 'Headphones', 'price': 150, 'quantity': 25, 'brand': 'SoundMax', 'category': 'Audio', 'entry_date': '2024-03-15'}
{'name': 'Wireless Charger', 'price': 75, 'quantity': 100, 'brand': 'ChargeMaster', 'category': 'Accessories', 'entry_date': '2024-07-01'}
{'name': 'Wireless Charger', 'price': 75, 'quantity': 100, 'brand': 'ChargeMaster', 'category': 'Accessories', 'entry_date': '2024-07-01'}
{'name': 'Wireless Charger', 'price': 75, 'quantity': 100, 'brand': 'ChargeMaster', 'category': 'Accessories', 'entry_date': '2024-07-01'}
{'name': 'Wireless Charger', 'price': 75, 'quantity': 100, 'brand': 'ChargeMaster', 'category': 'Accessories', 'entry_date': '2024-07-01'}

Una vez cargado el archivo, podemos iterar sobre el contenido.

# Recuperar el nombre y el precio
for i in products:
  print(f"Nombre: {i['name']}, Precio: {i['price']}")
Nombre: Laptop, Precio: 1200
Nombre: Mouse, Precio: 45
Nombre: Headphones, Precio: 150
Nombre: Wireless Charger, Precio: 75
Nombre: Wireless Charger, Precio: 75
Nombre: Wireless Charger, Precio: 75
Nombre: Wireless Charger, Precio: 75

19.1 Añadir información

Añadir información a un archivo JSON es tan sencillo como leerlo. Supongamos que quieres añadir un nuevo producto:

### Este bloque de codigo no se ejecutara en el libro ###
# Creamos un nuevo producto con la estructura del JSON
new_product = {
    "name": "Wireless Charger",
    "price": 75,
    "quantity": 100,
    "brand": "ChargeMaster",
    "category": "Accessories",
    "entry_date": "2025-06-14"
}

# Leemos el archivo
with open('Products.json', 'r') as file:
    products = json.load(file)

# Ingresamos el nuevo producto a la lista con los datos JSON
products.append(new_product)

# Sobreescribimos el archivo
with open('Products.json', 'w') as file:
    json.dump(products, file, indent = 4)