sábado, 18 de julio de 2026

Día 19 — JSON: el formato universal de intercambio de datos

 JSON (JavaScript Object Notation) es el formato estándar utilizado por la inmensa mayoría de APIs web para intercambiar información entre sistemas. Su estructura es muy similar a la de los diccionarios de Python, lo que hace que trabajar con él resulte muy natural desde este lenguaje.

El módulo json, incluido en la librería estándar de Python, ofrece cuatro funciones principales: dumps() convierte un diccionario en texto JSON, loads() hace el proceso inverso, y dump() / load() realizan las mismas conversiones directamente desde y hacia archivos.

Código de ejemplo:

import json persona = {"nombre": "José", "edad": 35} # Diccionario a texto JSON texto_json = json.dumps(persona, indent=2) print(texto_json) # Texto JSON a diccionario datos = json.loads(texto_json) print(datos["nombre"]) # Guardar directamente en un archivo with open("persona.json", "w") as archivo: json.dump(persona, archivo, indent=2)



 


viernes, 17 de julio de 2026

Día 18 — Archivos: leer y escribir ficheros en Python

Python facilita enormemente la lectura y escritura de archivos gracias a la función open(), combinada con la sentencia with, que garantiza que el archivo se cierre automáticamente al finalizar el bloque, incluso si ocurre un error durante el proceso.

Los modos más comunes de apertura son "r" para lectura, "w" para escritura (que sobreescribe el contenido existente) y "a" para añadir contenido al final del archivo sin borrar lo anterior. Saber manejar archivos es fundamental para tareas como procesar logs, generar informes o leer configuraciones.

Código de ejemplo:

# Escribir en un archivo
with open("datos.txt", "w") as archivo: archivo.write("Hola desde Python\n") archivo.write("Segunda línea\n") # Leer el archivo completo with open("datos.txt", "r") as archivo: contenido = archivo.read() print(contenido) # Leer línea a línea with open("datos.txt") as archivo: for linea in archivo: print(linea.strip())




jueves, 16 de julio de 2026

Día 17 — Manejo de errores con try / except

 Los errores en tiempo de ejecución son inevitables en cualquier programa real: un usuario introduce datos inesperados, un archivo no existe, una conexión falla. Python ofrece el bloque try / except para capturar estos errores y manejarlos de forma controlada en lugar de dejar que el programa se detenga abruptamente.

El bloque try contiene el código que puede fallar, y except especifica qué hacer si ocurre un tipo concreto de error. El bloque opcional finally se ejecuta siempre, haya error o no, y suele usarse para tareas de limpieza como cerrar archivos o conexiones.

def dividir(a, b): try: resultado = a / b return resultado except ZeroDivisionError: return "Error: no se puede dividir por cero" except TypeError: return "Error: introduce solo números" finally: print("Operación completada") print(dividir(10, 2)) # 5.0 print(dividir(10, 0)) # Error: no se puede dividir por cero