La estructura está pensada para que el lector aprenda, disfrute y pueda copiar el código sin miedo.
Aquí la tienes 👇
🧾 Cómo crear un Registro de Personal en Python con JSON (guía didáctica y visual)
En este artículo vamos a construir un pequeño sistema para registrar personas, guardar sus datos en un archivo JSON y buscar empleados por cargo.
Todo desde consola, paso a paso, con código limpio y explicaciones claras.
Ideal para quienes están aprendiendo Python y quieren practicar clases, archivos, JSON y bucles.
🎯 Objetivo del proyecto
Vamos a crear un programa que permita:
- Registrar personas (nombre, edad, sexo, cargo).
- Guardarlas en un archivo sin borrar lo anterior.
- Mostrar los datos guardados.
- Buscar personas por cargo.
- Mantener un formato bonito y legible.
🧱 1. La clase
Comenzamos creando una clase que represente a cada persona:
Esta clase nos permite trabajar con objetos, pero también convertirlos a diccionarios para guardarlos en JSON.
📦 2. Guardar datos en un archivo JSON
Creamos una función que:
- Carga el archivo si existe.
- Si no existe, crea una lista vacía.
- Agrega la nueva persona.
- Guarda todo con formato bonito.
📝 3. Registrar una persona
Pedimos los datos por consola, creamos el objeto y lo guardamos:
🔍 4. Buscar personas por cargo
Ahora viene la parte interactiva: un pequeño menú para buscar empleados por cargo.
📁 5. ¿Cómo queda el archivo ?
Después de registrar varias personas, el archivo se verá así:
Cada nueva persona se agrega al final sin borrar lo anterior.
🎨 6. Explicación visual (tu toque didáctico)
Imagina el archivo JSON como una estantería de fichas:
Cada vez que registras una persona, simplemente añades una ficha más.
Y cuando buscas por cargo, el programa revisa cada ficha como si dijera:
Hasta encontrar coincidencias.
🧠 7. Qué aprende el lector con este proyecto
- Uso de clases en Python.
- Conversión de objetos a diccionarios.
- Lectura y escritura de archivos JSON.
- Manejo de errores.
- Búsquedas dentro de listas.
- Interacción por consola.
- Persistencia de datos.
Un proyecto perfecto para principiantes que quieren dar un salto hacia programas más útiles y reales.
1. Importaciones
import json
import os from os
import system
¿Qué hace cada una?
- json → permite leer y escribir archivos JSON.
- os → permite comprobar si un archivo existe.
- system → permite ejecutar comandos del sistema como
pauseocls.
🧱 2. Clase Personal
class Personal: def __init__(self, nombre, edad, sexo, cargo): self.nombre = nombre self.edad = edad self.sexo = sexo self.cargo = cargo
¿Qué es esto?
Es un molde para crear personas.
Cada persona tendrá:
- nombre
- edad
- sexo
- cargo
📌 Método para mostrar información
def mostrar_informacion(self):
print(f»Nombre: {self.nombre}»)
print(f»Edad: {self.edad}»)
print(f»Sexo: {self.sexo}»)
print(f»Cargo: {self.cargo}»)
Muestra los datos en pantalla de forma ordenada.
📌 Método para convertir a diccionario
def convertir_a_diccionario(self):
return { «nombre»: self.nombre, «edad»: self.edad, «sexo»: self.sexo, «cargo»: self.cargo }
Esto es necesario porque JSON no puede guardar objetos, pero sí diccionarios.
📦 3. Función para guardar en JSON
def guardar_en_json(persona_dict):
archivo = «personal.json»
if os.path.exists(archivo):
with open(archivo, «r», encoding=»utf-8″) as f: datos = json.load(f)
else: datos = [] datos.append(persona_dict)
with open(archivo, «w», encoding=»utf-8″) as f: json.dump(datos, f, indent=4, ensure_ascii=False)
¿Qué hace?
- Comprueba si el archivo existe
- Si existe → lo abre y carga su contenido.
- Si no existe → crea una lista vacía.
- Agrega la nueva persona a la lista.
- Vuelve a guardar todo en el archivo JSON.
¿Por qué funciona tan bien?
Porque no borra lo anterior, solo añade.
🧑💻 4. Programa principal: registrar una persona
print(«—–Registro de Personal—–\n»)
nombre = input(«Ingrese el nombre: «)
edad = input(«Ingrese la edad: «)
sexo = input(«Ingrese el sexo: «)
cargo = input(«Ingrese el cargo: «)
Pide los datos al usuario.
📌 Crear el objeto
persona = Personal(nombre, edad, sexo, cargo)
Aquí se crea una persona real usando la clase.
📌 Mostrar y guardar
persona.mostrar_informacion() guardar_en_json(persona.convertir_a_diccionario())
- Muestra los datos en pantalla.
- Convierte la persona a diccionario.
- La guarda en el archivo JSON.
📁 5. Leer el archivo JSON
with open(«personal.json», «r», encoding=»utf-8″) as archivo: datos = json.load(archivo)
Carga todas las personas registradas en una lista llamada datos.
🔍 6. Búsqueda por cargo
while True: print(«\n Estas en buscar a una persona por cargo \n»)
cargo_buscar = input(«Ingrese el cargo a buscar (o ‘salir’ para terminar): «)
Bucle infinito hasta que el usuario escriba salir.
📌 Buscar coincidencias
encontrado = False for persona in datos:
if persona[«cargo»].lower() == cargo_buscar.lower():
print(«Persona encontrada:»)
print(json.dumps(persona, indent=4, ensure_ascii=False)) encontrado = True break
¿Qué hace?
- Recorre todas las personas del JSON.
- Compara el cargo ignorando mayúsculas/minúsculas.
- Si encuentra una coincidencia:
- La imprime en formato bonito.
- Marca
encontrado = True. - Sale del bucle.
📌 Si no encuentra nada
if not encontrado: print(«Cargo no encontrada.»)
📌 Pausa y limpiar pantalla
system(«pause»)
system(«cls»)
pause→ espera que el usuario presione una tecla.cls→ limpia la pantalla (solo Windows).
🎯 Resumen visual del flujo
[Usuario escribe datos]
↓ [Se crea un objeto Personal]
↓ [Se convierte a diccionario]
↓ [Se guarda en personal.json]
↓ [Se cargan todos los registros]
↓ [Usuario busca por cargo]
↓ [Se muestran coincidencias]
