Operaciones CRUD en archivos JSON con Python

5 feb 2024 4 min di lettura
Operaciones CRUD en archivos JSON con Python
Indice dei contenuti

Introducción

JSON (JavaScript Object Notation) se ha convertido en un estándar universal para el intercambio de datos debido a su simplicidad, formato liviano y naturaleza independiente del lenguaje. Python, con su sintaxis simple y potentes bibliotecas, brinda un excelente soporte para trabajar con archivos JSON. Esta guía profundizará en los aspectos prácticos de realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en archivos JSON usando Python, ofreciendo fragmentos de código, ejemplos y mejores prácticas.

Operaciones CRUD de Python en JSON

Antes de sumergirnos en las operaciones CRUD, es fundamental comprender cómo interactúa Python con los datos JSON. El módulo json en Python puede analizar JSON a partir de cadenas o archivos. El módulo también puede convertir diccionarios de Python en cadenas JSON.

1. Leer archivos JSON (lectura)

Para leer datos de un archivo JSON, utiliza la función json.load(), que convierte los datos JSON en un diccionario de Python, lo que le permite acceder y manipular los datos dentro de su script de Python.

import json

 # Reading JSON data from a file
 with open('data.json', 'r') as file:
 data = json.load(file)
 print(data) # This will display the content of the data.json file as a Python dictionary.

2. Escribir en un archivo JSON (Crear y actualizar)

Escribir en un archivo JSON o actualizar un archivo existente implica convertir un diccionario de Python a JSON usando la función json.dump(). Si el archivo no existe, Python lo creará por usted.

import json

 # Data to be written
 data = {
 'name': 'John Doe',
 'age': 30,
 'city': 'New York'
 }

 # Writing JSON data into a file
 with open('data.json', 'w') as file:
 json.dump(data, file, indent=4)

El parámetro de sangría garantiza que los datos JSON tengan el formato correcto, haciéndolos más legibles.

3. Edición de datos JSON (actualización)

Para actualizar un archivo JSON existente, primero lea los datos en un diccionario de Python, modifique el diccionario según sea necesario y luego vuelva a escribirlo en el archivo.

import json

 # Reading the data
 with open('data.json', 'r') as file:
 data = json.load(file)

 # Modifying the data
 data['age'] = 31 # Updating the age
 data['email'] = '[email protected]' # Adding a new key-value pair

 # Writing the modified data back to the file
 with open('data.json', 'w') as file:
 json.dump(data, file, indent=4)

4. Eliminar datos de JSON (Eliminar)

Al eliminar datos de un archivo JSON, se elimina el par clave-valor del diccionario y se reescribe el diccionario actualizado en el archivo JSON.

import json

 # Reading the data
 with open('data.json', 'r') as file:
 data = json.load(file)

 # Deleting the 'city' key-value pair
 del data['city']

 # Writing the updated data back to the file
 with open('data.json', 'w') as file:
 json.dump(data, file, indent=4)

5. Actualización condicional en datos JSON

Supongamos que tenemos un archivo JSON que contiene una lista de usuarios y queremos actualizar la ciudad de un usuario cuyo nombre coincide con una condición particular. Así es como puedes lograr esto:

import json

 # Define the condition for the update
 name_to_update = "John Doe"
 new_city = "Los Angeles"

 # Load the data
 with open('data.json', 'r') as file:
 data = json.load(file)

 # Check each user and update the city if the name matches
 for user in data['users']: # Assuming the data is a dictionary with a 'users' list
 if user['name'] == name_to_update:
 user['city'] = new_city
 break # Assuming only one user with this name, we can break after finding the match

 # Write the updated data back to the file
 with open('data.json', 'w') as file:
 json.dump(data, file, indent=4)

6. Eliminación condicional de datos JSON

Para la eliminación, digamos que queremos eliminar a los usuarios que tienen más de cierta edad. Esta operación implica filtrar a los usuarios que cumplen con los criterios y luego volver a escribir los usuarios restantes en el archivo.

import json

 # Define the condition for deletion
 age_threshold = 30

 # Load the data
 with open('data.json', 'r') as file:
 data = json.load(file)

 # Use a list comprehension to filter out users over the age threshold
 data['users'] = [user for user in data['users'] if user['age'] <= age_threshold]

 # Write the updated data back to the file
 with open('data.json', 'w') as file:
 json.dump(data, file, indent=4)

Mejores prácticas

  • Validar: valide siempre los datos JSON antes de leerlos o escribirlos para asegurarse de que cumplan con el formato esperado, especialmente cuando se trata de fuentes externas.
  • Manejo de errores: implemente el manejo de errores para manejar problemas como archivos no encontrados, errores de permisos o JSON no válidos.
  • Pretty Printing: utilice el parámetro indent json.dump() para que sus archivos JSON sean legibles por humanos.
  • Analíticas seguras: Ten cuidado con los datos que estás subiendo. Asegúrese de que provenga de una fuente confiable para evitar riesgos de seguridad.
  • Condiciones complejas: para condiciones más complejas, considere usar funciones para encapsular la lógica utilizada para determinar si se actualiza o elimina un elemento.
  • Consideraciones de rendimiento: cuando trabaje con archivos JSON de gran tamaño, tenga en cuenta las implicaciones de rendimiento que supone leer y escribir el archivo completo para pequeñas actualizaciones. En estos casos, considere utilizar una base de datos alternativa o un mecanismo de almacenamiento optimizado para operaciones frecuentes de lectura y escritura.
  • Haga una copia de seguridad de los datos originales: antes de realizar actualizaciones o eliminaciones masivas, es una buena idea hacer una copia de seguridad del archivo JSON original. Esto garantiza que pueda recuperar los datos originales en caso de que algo salga mal con el proceso de actualización o eliminación.

Conclusión

Las operaciones CRUD en archivos JSON con Python son fáciles gracias al módulo json incorporado. Si sigue los ejemplos proporcionados en esta guía, puede crear, leer, actualizar y eliminar datos en archivos JSON de manera efectiva, lo que convierte a Python en una herramienta poderosa para administrar datos JSON en diversas aplicaciones. Ya sea que esté desarrollando una aplicación web, automatizando una tarea o procesando datos, estas habilidades resultarán invaluables en su kit de herramientas de programación.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.