Mostrando entradas con la etiqueta json. Mostrar todas las entradas
Mostrando entradas con la etiqueta json. Mostrar todas las entradas

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)



 


martes, 7 de julio de 2026

Día 9 — Diccionarios: datos organizados por clave y valor

Un diccionario almacena información en pares de clave y valor, permitiendo acceder a los datos por su nombre en lugar de por su posición numérica, como ocurre en las listas. Esto los hace ideales para representar objetos del mundo real, como una persona, un producto o una configuración.

Los diccionarios son además la estructura más cercana al formato JSON, que es el estándar utilizado en la inmensa mayoría de las APIs web actuales. Aprender a manejarlos bien en Python te facilitará enormemente el trabajo con APIs y bases de datos más adelante.

Código de ejemplo:

persona = { "nombre": "José", "edad": 35, "ciudad": "Sevilla" } print(persona["nombre"]) # José persona["trabajo"] = "Dev" # Añadir nueva clave print(persona.keys()) # Todas las claves print(persona.values()) # Todos los valores for clave, valor in persona.items(): print(f"{clave}: {valor}")




domingo, 27 de julio de 2025

🌐 Python Nivel 3 – Parte 4: Manejo de APIs y Automatización de Consultas HTTP

 

🎯 ¿Qué aprenderás?

✅ Qué es una API y cómo funciona
✅ Cómo enviar peticiones HTTP desde Python (GET, POST, etc.)
✅ Cómo consumir datos en formato JSON
✅ Cómo automatizar consultas a servicios externos
✅ Cómo manejar errores y respuestas


🔍 ¿Qué es una API?

Una API (Interfaz de Programación de Aplicaciones) permite que dos sistemas se comuniquen. En la web, usamos API REST para acceder a datos, enviar formularios, consultar servicios, etc.


📦 Usando requests para consumir APIs

Primero, instala el módulo si no lo tienes:


pip install requests

✅ Ejemplo 1: Consultar una API pública (GET)


import requests url = "https://jsonplaceholder.typicode.com/posts/1" respuesta = requests.get(url) if respuesta.status_code == 200: datos = respuesta.json() print(f"Título: {datos['title']}") else: print("Error al consultar la API")

✅ Ejemplo 2: Enviar datos (POST)


import requests url = "https://jsonplaceholder.typicode.com/posts" nuevo_post = { "title": "Nuevo post", "body": "Contenido del post", "userId": 1 } respuesta = requests.post(url, json=nuevo_post) print(respuesta.json())

🔁 Automatizar llamadas a una API

Puedes combinar esto con el programador de tareas de Windows o un bucle para automatizar la consulta de datos:


import time while True: r = requests.get("https://api.exchangerate-api.com/v4/latest/USD") if r.ok: euro = r.json()["rates"]["EUR"] print(f"1 USD = {euro} EUR") time.sleep(3600) # espera 1 hora

🛑 Manejo de errores y excepciones


try: respuesta = requests.get("https://api.fallida.com/data") respuesta.raise_for_status() print(respuesta.json()) except requests.exceptions.HTTPError as e: print("Error HTTP:", e) except requests.exceptions.RequestException as e: print("Error general:", e)

🧠 Aplicaciones comunes

  • Consultar precios de criptomonedas o monedas

  • Obtener el clima actual

  • Enviar formularios automáticamente

  • Automatizar tareas de scraping de datos

  • Consultar servicios internos de una empresa


📂 Código en GitHub:
github.com/josecodetech

🎥 Tutorial en YouTube:
https://youtu.be/LgJQW_fbZeY



lunes, 23 de junio de 2025

🧪 Python Nivel 2 – Parte 9-10: Proyecto CRUD Completo en Consola con POO y JSON

 

🎯 Objetivo del proyecto:

Crear una aplicación funcional por consola que permita gestionar una lista de usuarios con las siguientes operaciones:

  • 🔹 Crear usuarios

  • 🔹 Leer todos los usuarios

  • 🔹 Actualizar un usuario existente

  • 🔹 Eliminar usuarios

  • 🔹 Guardar los datos en un archivo .json

  • 🔹 Recuperarlos al iniciar el programa


🗂️ Estructura del sistema

🔧 Clases necesarias:

  • Usuario

  • GestorUsuarios (controlador del CRUD)


💻 Código simplificado

🧱 Clase Usuario


class Usuario: def __init__(self, nombre, email): self.nombre = nombre self.email = email def to_dict(self): return {"nombre": self.nombre, "email": self.email}

🧱 Clase GestorUsuarios


import json import os class GestorUsuarios: def __init__(self, archivo): self.archivo = archivo self.usuarios = self.cargar() def cargar(self): if os.path.exists(self.archivo): with open(self.archivo, "r", encoding="utf-8") as f: datos = json.load(f) return [Usuario(**d) for d in datos] return [] def guardar(self): with open(self.archivo, "w", encoding="utf-8") as f: json.dump([u.to_dict() for u in self.usuarios], f, indent=4) def crear_usuario(self, nombre, email): self.usuarios.append(Usuario(nombre, email)) self.guardar() def listar(self): for i, u in enumerate(self.usuarios, 1): print(f"{i}. {u.nombre} - {u.email}") def actualizar(self, indice, nombre, email): if 0 <= indice < len(self.usuarios): self.usuarios[indice].nombre = nombre self.usuarios[indice].email = email self.guardar() def eliminar(self, indice): if 0 <= indice < len(self.usuarios): del self.usuarios[indice] self.guardar()

🧑‍💻 Interfaz por consola


gestor = GestorUsuarios("usuarios.json") while True: print("\n1. Crear usuario\n2. Listar usuarios\n3. Actualizar usuario\n4. Eliminar usuario\n5. Salir") opcion = input("Selecciona una opción: ") if opcion == "1": nombre = input("Nombre: ") email = input("Email: ") gestor.crear_usuario(nombre, email) elif opcion == "2": gestor.listar() elif opcion == "3": gestor.listar() i = int(input("Número de usuario a actualizar: ")) - 1 nombre = input("Nuevo nombre: ") email = input("Nuevo email: ") gestor.actualizar(i, nombre, email) elif opcion == "4": gestor.listar() i = int(input("Número de usuario a eliminar: ")) - 1 gestor.eliminar(i) elif opcion == "5": print("👋 Adiós.") break

🧠 ¿Qué aprendiste hoy?

✔️ Crear una aplicación CRUD completa con Python
✔️ Usar clases y persistencia con JSON
✔️ Desarrollar menús interactivos
✔️ Aplicar POO en un contexto realista


📂 Código completo en GitHub:
github.com/josecodetech

🎥 Video paso a paso en YouTube:
https://www.youtube.com/watch?v=f5yfu-TxWlA




jueves, 19 de junio de 2025

🧪 Python Nivel 2 – Parte 8: Guardar y Cargar Objetos con JSON (Persistencia)

 

🎯 ¿Qué aprenderás?

✅ Cómo guardar estructuras de datos en archivos .json
✅ Cómo convertir objetos a diccionarios (__dict__)
✅ Cómo volver a crear objetos desde archivos
✅ Integrar lectura/escritura en tu sistema


📁 ¿Por qué usar JSON?

Los objetos en memoria desaparecen al cerrar Python.
Con .json puedes almacenar datos estructurados como diccionarios o listas y volver a cargarlos después.


✅ Ejemplo práctico con clases: guardar usuarios

Supongamos que tienes esta clase:


class Usuario: def __init__(self, nombre, email): self.nombre = nombre self.email = email def to_dict(self): return {"nombre": self.nombre, "email": self.email}

💾 Guardar lista de usuarios en un archivo


import json usuarios = [Usuario("Ana", "ana@mail.com"), Usuario("Luis", "luis@mail.com")] with open("usuarios.json", "w", encoding="utf-8") as f: json.dump([u.to_dict() for u in usuarios], f, indent=4)

📂 Cargar usuarios desde el archivo .json


with open("usuarios.json", "r", encoding="utf-8") as f: datos = json.load(f) usuarios_cargados = [Usuario(**d) for d in datos] for u in usuarios_cargados: print(f"{u.nombre} - {u.email}")

🧠 Aprendiste:

  • A serializar objetos (convertir a JSON)

  • A deserializar (crear objetos desde JSON)


🧠 Buenas prácticas

✅ Usar to_dict() para conversión
✅ Separar lógica de guardado en funciones
✅ Validar archivos vacíos o inexistentes
✅ Guardar listas completas (no objetos uno a uno)


🚀 ¿Qué aprendiste hoy?

✔️ A persistir tus objetos entre ejecuciones
✔️ A leer y guardar datos estructurados
✔️ A construir sistemas más completos y reutilizables
✔️ A combinar clases + archivos + lógica real


📂 Código completo en GitHub:
github.com/josecodetech

🎥 Video paso a paso en YouTube:
https://www.youtube.com/watch?v=s4kWoqrTGVM

sábado, 7 de junio de 2025

🧪 Python Nivel 1 – Parte 10: Ejercicio Integrador – Gestor de Tareas

 🎯 Objetivo:

Crear un programa realista que permita al usuario:

  • Añadir tareas

  • Marcar tareas como completadas

  • Ver tareas pendientes y completadas

  • Guardar y recuperar tareas desde un archivo .json


📝 Enunciado del proyecto: Gestor de tareas

Escribe un programa que permita al usuario gestionar sus tareas del día. Las tareas se deben guardar en un archivo llamado tareas.json para que no se pierdan al cerrar el programa.


✅ Características:

  1. Menú principal con opciones:

    • Añadir nueva tarea

    • Ver tareas pendientes

    • Marcar tarea como completada

    • Ver tareas completadas

    • Salir

  2. Uso de funciones para cada acción

  3. Datos estructurados con listas y diccionarios

  4. Lectura y escritura en archivo .json para guardar todo


💻 Código completo del proyecto


import json import os archivo = "tareas.json" # Cargar tareas si existe el archivo def cargar_tareas(): if os.path.exists(archivo): with open(archivo, "r", encoding="utf-8") as f: return json.load(f) else: return {"pendientes": [], "completadas": []} # Guardar tareas en archivo def guardar_tareas(tareas): with open(archivo, "w", encoding="utf-8") as f: json.dump(tareas, f, indent=4) # Mostrar tareas def mostrar_tareas(lista, titulo): print(f"\n📋 {titulo}:") if lista: for i, tarea in enumerate(lista, start=1): print(f"{i}. {tarea}") else: print("No hay tareas.") # Menú principal def menu(): tareas = cargar_tareas() while True: print("\n--- MENÚ ---") print("1. Añadir tarea") print("2. Ver pendientes") print("3. Marcar como completada") print("4. Ver completadas") print("5. Salir") opcion = input("Elige una opción: ") if opcion == "1": nueva = input("Escribe la nueva tarea: ") tareas["pendientes"].append(nueva) guardar_tareas(tareas) elif opcion == "2": mostrar_tareas(tareas["pendientes"], "Tareas pendientes") elif opcion == "3": mostrar_tareas(tareas["pendientes"], "Tareas pendientes") if tareas["pendientes"]: try: num = int(input("Número de tarea completada: ")) - 1 completada = tareas["pendientes"].pop(num) tareas["completadas"].append(completada) guardar_tareas(tareas) except (ValueError, IndexError): print("❌ Entrada inválida.") elif opcion == "4": mostrar_tareas(tareas["completadas"], "Tareas completadas") elif opcion == "5": print("✅ Programa cerrado. ¡Hasta pronto!") break else: print("❌ Opción no válida.") # Ejecutar menú menu()

🧠 ¿Qué se repasa aquí?

✔️ Estructuras condicionales y bucles
✔️ Listas, diccionarios y funciones
✔️ Lectura/escritura de archivos .json
✔️ Validación de entrada del usuario
✔️ Organización y reutilización de código


🚀 Próximo paso:

Con este proyecto cierras el Nivel 1 de Python y estás listo para pasar a conceptos intermedios como:

  • clases y objetos

  • librerías externas

  • proyectos web o visuales


📂 Código disponible en GitHub:
github.com/josecodetech

Video tutorial : https://youtu.be/CSeYb1WS7QE



domingo, 2 de marzo de 2025

👉 Ejercicios Prácticos de Python: Manejo de Archivos y Datos

Después de aprender cómo leer, escribir y modificar archivos en Python, es hora de practicar con ejercicios reales y útiles.

Hoy resolveremos ejercicios sobre:
✔️ Leer y escribir archivos de texto (.txt)
✔️ Leer y escribir archivos CSV
✔️ Trabajar con JSON para almacenar datos estructurados
✔️ Ejemplo práctico explicado paso a paso

📌 Cada ejercicio incluye código, explicación y prueba de salida.


1️⃣ Ejercicio: Contar las Palabras en un Archivo de Texto

📍 Objetivo: Leer un archivo de texto y contar cuántas palabras tiene.

🔹 Código:

def contar_palabras(nombre_archivo): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() palabras = contenido.split() print(f"El archivo tiene {len(palabras)} palabras.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la función contar_palabras("archivo.txt")

📌 Salida esperada (si el archivo tiene texto):

El archivo tiene 56 palabras.

✅ Se usa split() para dividir el texto en palabras.
✅ try-except evita que el programa se bloquee si el archivo no existe.


2️⃣ Ejercicio: Guardar una Lista en un Archivo CSV

📍 Objetivo: Escribir una lista de datos en un archivo CSV y luego leerlo.

🔹 Código:

import csv datos = [ ["Nombre", "Edad", "Ciudad"], ["José", 25, "Madrid"], ["Ana", 30, "Barcelona"], ["Carlos", 22, "Sevilla"] ] # Guardar datos en CSV with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerows(datos) # Leer el archivo CSV with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

📌 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['José', '25', 'Madrid'] ['Ana', '30', 'Barcelona'] ['Carlos', '22', 'Sevilla']

✅ Ideal para trabajar con datos tabulares en Python.


3️⃣ Ejercicio: Guardar y Leer Datos en un Archivo JSON

📍 Objetivo: Guardar información de usuarios en un archivo JSON y luego leerla.

🔹 Código:

import json usuarios = [ {"nombre": "José", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ] # Guardar en JSON with open("usuarios.json", "w") as archivo: json.dump(usuarios, archivo, indent=4) # Leer el JSON with open("usuarios.json", "r") as archivo: datos = json.load(archivo) print(datos)

📌 Salida esperada:

[ {"nombre": "José", "edad": 25, "ciudad": "Madrid"}, {"nombre": "Ana", "edad": 30, "ciudad": "Barcelona"}, {"nombre": "Carlos", "edad": 22, "ciudad": "Sevilla"} ]

✅ JSON es ideal para trabajar con datos estructurados en Python.


4️⃣ Ejercicio: Buscar una Palabra en un Archivo

📍 Objetivo: Leer un archivo de texto y contar cuántas veces aparece una palabra específica.

🔹 Código:

def contar_ocurrencias(nombre_archivo, palabra): try: with open(nombre_archivo, "r") as archivo: contenido = archivo.read() cantidad = contenido.lower().count(palabra.lower()) print(f"La palabra '{palabra}' aparece {cantidad} veces en el archivo.") except FileNotFoundError: print("❌ Error: El archivo no existe.") # Prueba la función contar_ocurrencias("archivo.txt", "Python")

📌 Salida esperada:

La palabra 'Python' aparece 3 veces en el archivo.

✅ count() cuenta la cantidad de veces que aparece una palabra en el texto.


5️⃣ Ejercicio: Registrar y Leer Notas de Estudiantes

📍 Objetivo: Escribir y leer registros de estudiantes en un archivo de texto.

🔹 Código:

def guardar_estudiante(nombre, nota): with open("estudiantes.txt", "a") as archivo: archivo.write(f"{nombre}, {nota}\n") def leer_estudiantes(): try: with open("estudiantes.txt", "r") as archivo: for linea in archivo: print(linea.strip()) except FileNotFoundError: print("❌ Error: El archivo no existe.") # Agregar estudiantes guardar_estudiante("Carlos", 8.5) guardar_estudiante("Ana", 9.0) # Leer los datos leer_estudiantes()

📌 Salida esperada:

Carlos, 8.5 Ana, 9.0

✅ Ejemplo útil para registrar datos y consultarlos después.


🚀 Conclusión

✅ Hoy hemos resuelto ejercicios con manejo de archivos en Python.
✅ Estos ejercicios ayudan a leer, escribir y manipular datos de forma eficiente.
✅ Practica modificando el código para entenderlo mejor.

📌 Próximo post: Más ejercicios avanzados con bases de datos en Python (SQLite).

📂 Descarga los ejercicios en mi GitHub: github.com/josecodetech

🎥 Aprende con mis videos en YouTube: [Tu canal aquí]

💬 ¿Qué tipo de archivos sueles manejar en Python? Cuéntamelo en los comentarios.



sábado, 1 de marzo de 2025

👉 Manejo de Archivos en Python: Leer, Escribir y Modificar Información

El manejo de archivos en Python es fundamental para guardar y recuperar información de manera persistente. En este post, aprenderemos a:

✔️ Abrir y leer archivos en Python
✔️ Escribir y modificar archivos de texto
✔️ Diferencias entre modos de apertura (r, w, a)
✔️ Trabajar con archivos CSV y JSON
✔️ Ejemplo práctico explicado paso a paso

📌 Con estas técnicas, podrás almacenar y manipular datos de manera eficiente en Python.


1️⃣ Abrir y Leer un Archivo en Python

Para leer un archivo en Python, usamos la función open().

📌 Ejemplo: Leer todo el contenido de un archivo

with open("archivo.txt", "r") as archivo: contenido = archivo.read() print(contenido)

📌 Explicación:
✅ "archivo.txt" → Nombre del archivo que queremos leer.
✅ "r" → Indica que abrimos el archivo en modo lectura.
✅ with open(...) as archivo: → Asegura que el archivo se cierre automáticamente después de su uso.

📌 Ejemplo de salida (si el archivo contiene texto):

Hola, este es un archivo de prueba.

📍 Leer un Archivo Línea por Línea

Si queremos leer un archivo línea por línea, usamos .readlines().

with open("archivo.txt", "r") as archivo: for linea in archivo.readlines(): print(linea.strip()) # strip() elimina espacios en blanco y saltos de línea

📌 Salida esperada:

Línea 1 del archivo Línea 2 del archivo Línea 3 del archivo

✅ Ideal para procesar archivos grandes línea por línea.


2️⃣ Escribir en un Archivo en Python

Para escribir en un archivo, usamos el modo "w" o "a".

📌 Diferencias entre modos de apertura:
✔️ "w" (write) → Sobrescribe el contenido del archivo.
✔️ "a" (append) → Agrega contenido sin borrar lo anterior.

📌 Ejemplo: Escribir en un archivo (sobreescribe el contenido anterior)

with open("archivo.txt", "w") as archivo: archivo.write("Este es un nuevo contenido.\n") archivo.write("Se sobrescribió el archivo.\n")

📌 Ejemplo: Agregar texto a un archivo sin borrar lo anterior

with open("archivo.txt", "a") as archivo: archivo.write("Esta es una línea nueva.\n")

📌 Explicación:
✅ Modo "w" sobrescribe el contenido existente.
✅ Modo "a" agrega nuevas líneas al archivo sin eliminar lo anterior.


3️⃣ Leer y Escribir Archivos CSV en Python

Los archivos CSV (Comma-Separated Values) son muy usados para almacenar datos estructurados.

📌 Ejemplo: Escribir un archivo CSV

import csv with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerow(["Nombre", "Edad", "Ciudad"]) escritor.writerow(["José", 25, "Madrid"]) escritor.writerow(["María", 30, "Barcelona"])

📌 Ejemplo: Leer un archivo CSV

import csv with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

📌 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['José', '25', 'Madrid'] ['María', '30', 'Barcelona']

✅ Ideal para trabajar con datos estructurados en Python.


4️⃣ Trabajar con Archivos JSON en Python

Los archivos JSON (JavaScript Object Notation) permiten almacenar y compartir datos en formato estructurado.

📌 Ejemplo: Escribir un archivo JSON

import json datos = { "nombre": "José", "edad": 25, "ciudad": "Madrid" } with open("datos.json", "w") as archivo: json.dump(datos, archivo, indent=4)

📌 Ejemplo: Leer un archivo JSON

import json with open("datos.json", "r") as archivo: datos = json.load(archivo) print(datos)

📌 Salida esperada:

{'nombre': 'José', 'edad': 25, 'ciudad': 'Madrid'}

✅ JSON es ampliamente utilizado en APIs y bases de datos.


5️⃣ Ejemplo Completo: Registrar y Leer Notas de Estudiantes

📌 Guardar información de estudiantes en un archivo de texto:

def guardar_estudiante(nombre, nota): with open("estudiantes.txt", "a") as archivo: archivo.write(f"{nombre}, {nota}\n") def leer_estudiantes(): with open("estudiantes.txt", "r") as archivo: for linea in archivo: print(linea.strip()) # Agregar estudiantes guardar_estudiante("Carlos", 8.5) guardar_estudiante("Ana", 9.0) # Leer los datos leer_estudiantes()

📌 Salida esperada:

Carlos, 8.5 Ana, 9.0

✅ Ejemplo útil para registrar datos y consultarlos después.


🚀 Conclusión

✅ open() permite leer y escribir archivos de texto.
✅ CSV y JSON son formatos clave para almacenar datos estructurados.
✅ Modo "r", "w" y "a" determinan cómo se manipula un archivo.
✅ Manejar archivos es clave para cualquier aplicación real en Python.

📌 Próximo post: Ejercicios prácticos sobre manejo de archivos en Python.

📂 Código disponible en mi GitHub: github.com/josecodetech

🎥 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech

💬 ¿Has trabajado con archivos en Python? ¿Qué datos sueles almacenar? Cuéntamelo en los comentarios.



viernes, 14 de febrero de 2025

👉 Manejo de Archivos y Bases de Datos en Python: Guarda y Recupera Información

Hasta ahora hemos aprendido a manejar estructuras de datos y a escribir código organizado con funciones, módulos y programación orientada a objetos. Ahora vamos a explorar cómo guardar y recuperar información en archivos y bases de datos con Python.

Hoy aprenderás:
✔️ Cómo leer y escribir archivos en Python
✔️ Manejo de archivos CSV y JSON
✔️ Introducción a bases de datos con SQLite
✔️ Ejemplo práctico explicado paso a paso


1️⃣ Lectura y Escritura de Archivos en Python

Python permite leer y escribir archivos de texto (.txt) usando la función open().

🔹 Ejemplo: Escribir en un archivo

with open("archivo.txt", "w") as archivo: archivo.write("Hola, este es un archivo de texto en Python.")

📌 Explicación:
✅ "w" → Modo escritura (borra el contenido anterior)
✅ with open(...) → Abre el archivo y lo cierra automáticamente al terminar


🔹 Ejemplo: Leer un archivo

with open("archivo.txt", "r") as archivo: contenido = archivo.read() print(contenido)

📌 Explicación:
✅ "r" → Modo lectura
✅ .read() → Lee todo el contenido del archivo

📌 Salida esperada:

Hola, este es un archivo de texto en Python.

2️⃣ Manejo de Archivos CSV y JSON en Python

📍 Trabajar con CSV (valores separados por comas)

Python ofrece la librería csv para manejar archivos .csv usados en hojas de cálculo y bases de datos.

🔹 Ejemplo: Escribir un archivo CSV

import csv with open("datos.csv", "w", newline="") as archivo: escritor = csv.writer(archivo) escritor.writerow(["Nombre", "Edad", "Ciudad"]) escritor.writerow(["José", 25, "Madrid"]) escritor.writerow(["María", 30, "Barcelona"])

📌 Explicación:
✅ csv.writer() → Crea un escritor CSV
✅ writerow([...]) → Agrega una fila de datos


🔹 Ejemplo: Leer un archivo CSV

import csv with open("datos.csv", "r") as archivo: lector = csv.reader(archivo) for fila in lector: print(fila)

📌 Salida esperada:

['Nombre', 'Edad', 'Ciudad'] ['José', '25', 'Madrid'] ['María', '30', 'Barcelona']

📍 Trabajar con JSON (JavaScript Object Notation)

Los archivos JSON son ideales para almacenar datos estructurados.

🔹 Ejemplo: Guardar datos en un archivo JSON

import json datos = { "nombre": "José", "edad": 25, "ciudad": "Madrid" } with open("datos.json", "w") as archivo: json.dump(datos, archivo, indent=4)

📌 Explicación:
✅ json.dump() → Guarda los datos en un archivo JSON
✅ indent=4 → Formatea el archivo con espacios para mejor lectura


🔹 Ejemplo: Leer un archivo JSON

import json with open("datos.json", "r") as archivo: datos = json.load(archivo) print(datos)

📌 Salida esperada:

{'nombre': 'José', 'edad': 25, 'ciudad': 'Madrid'}

✅ json.load() → Carga los datos desde un archivo JSON


3️⃣ Bases de Datos con SQLite en Python

SQLite es una base de datos liviana integrada en Python.

🔹 Ejemplo: Crear una Base de Datos SQLite y una Tabla

import sqlite3 conexion = sqlite3.connect("base_datos.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, edad INTEGER ) """) conexion.commit() conexion.close()

📌 Explicación:
✅ sqlite3.connect() → Crea o abre una base de datos
✅ cursor.execute() → Ejecuta comandos SQL
✅ commit() → Guarda los cambios


🔹 Ejemplo: Insertar Datos en SQLite

conexion = sqlite3.connect("base_datos.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ("José", 25)) conexion.commit() conexion.close()

📌 Explicación:
✅ INSERT INTO → Agrega un nuevo usuario a la base de datos


🔹 Ejemplo: Leer Datos desde SQLite

conexion = sqlite3.connect("base_datos.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() for usuario in usuarios: print(usuario) conexion.close()

📌 Salida esperada:

(1, 'José', 25)

✅ fetchall() → Recupera todos los registros de la tabla


🚀 Conclusión

Hoy aprendimos a manejar archivos y bases de datos en Python.

✅ Archivos .txt → Leer y escribir información básica
✅ Archivos .csv y .json → Manejo de datos estructurados
✅ Bases de Datos SQLite → Almacenar información de manera eficiente

En el próximo post, veremos cómo crear una API con Python para conectar aplicaciones web y bases de datos. ¡No te lo pierdas!

📂 Descarga ejemplos y ejercicios en mi GitHub: github.com/josecodetech

🎥 Aprende con mis videos en YouTube: https://www.youtube.com/@josecodetech/

💬 Déjame un comentario si tienes dudas o quieres que cubra algún tema en detalle.