📊 Procesamiento de Datos

Extractor y Organizador de Datos de API

Obtener datos de APIs y guardarlos como archivos estructurados

★★★ Avanzado 20-30 min 12 de enero de 2025

Descripción General

Muchos servicios proporcionan interfaces API para acceso programático a datos. Claude puede ayudarle a escribir scripts para obtener datos de APIs, manejar la paginación y reintentos de errores, y organizar los resultados en tablas o informes.

Casos de Uso

  • Obtener estadísticas de redes sociales
  • Extraer información de pedidos de plataformas de comercio electrónico
  • Recopilar datos públicos como clima y acciones
  • Sincronizar datos de sistemas de terceros

Pasos

Paso 1: Comprender la Estructura de la API

Primero pruebe la llamada a la API para entender el formato de respuesta.

Quiero obtener información de repositorio de la API de GitHub:
API: https://api.github.com/repos/user/repo
Tipo de solicitud: GET
Token requerido: ghp_xxxxx

Por favor ayúdeme a:
1. Probar si esta API es accesible
2. Mostrar la estructura JSON devuelta
3. Identificar los campos que necesito: name, stars, forks, open_issues

Paso 2: Manejar Datos Paginados

Para APIs que devuelven grandes cantidades de datos, se necesita paginación.

La API usa paginación, devolviendo 100 registros por página:
- Primera página: https://api.example.com/data?page=1
- Obtener siguiente página mediante el header Link o campo next_page

Por favor cree un script para:
1. Obtener automáticamente datos de todas las páginas
2. Combinar en un conjunto de datos completo
3. Mostrar progreso de obtención
4. Guardar en ~/data/api_results.json

Paso 3: Manejo de Errores y Reintentos

Agregar tolerancia a fallos para manejar problemas de red.

Por favor mejore la confiabilidad del script:
- Si la solicitud falla, reintentar automáticamente 3 veces
- Esperar 5 segundos entre reintentos
- Si encuentra 429 (límite de tasa), esperar 60 segundos antes de reintentar
- Registrar todas las solicitudes fallidas en un archivo de log
- Soportar reanudación (si se interrumpe, continuar desde la última posición la próxima vez)

Paso 4: Transformación de Datos

Convertir el JSON devuelto por la API a un formato más utilizable.

Por favor procese los datos obtenidos:
1. Extraer campos necesarios, ignorar campos irrelevantes
2. Aplanar estructuras anidadas (ej., user.name -> user_name)
3. Formatear fecha y hora a formato estándar
4. Convertir a archivo CSV: ~/data/api_data.csv
5. Generar diccionario de datos explicando el significado de cada campo

Paso 5: Obtención Automática Programada

Crear tareas programadas para actualizar datos automáticamente.

Por favor cree un script de automatización:
1. Encapsular la lógica de obtención anterior en un script Python
2. Agregar soporte de argumentos de línea de comandos (ej., especificar rango de fechas)
3. Generar archivos con marca de tiempo para cada ejecución
4. Configurar tarea cron para ejecutar automáticamente a las 2 AM diariamente
5. Enviar correo de notificación si ocurre un error
Guardar como ~/scripts/api_fetcher.py

Consejos

Preste atención a los límites de tasa de la API. Las solicitudes demasiado frecuentes pueden resultar en bloqueo. Se recomienda agregar intervalos entre solicitudes y almacenar en caché los datos que no cambian frecuentemente.

Almacene las claves API en variables de entorno o archivos de configuración, no las codifique directamente en los scripts para evitar fugas. Use archivos .env para gestionar claves y agréguelos a .gitignore.

Preguntas Frecuentes

P: ¿Qué hacer si la API devuelve demasiados datos y la memoria es insuficiente? R: Use procesamiento en streaming, escribiendo a archivos mientras obtiene datos, no cargue todos los datos en memoria de una vez. O procese en lotes, obteniendo solo una porción de datos a la vez.

P: ¿Cómo manejar actualizaciones de versión de API? R: Especifique el número de versión de la API en el script (generalmente en URL o Header). Monitoree las notificaciones de cambios en la documentación de la API y actualice los scripts puntualmente.

P: ¿Se pueden llamar múltiples APIs simultáneamente? R: Sí. Claude puede crear scripts para llamar múltiples APIs concurrentemente, u obtener y combinar datos de múltiples fuentes. Preste atención al manejo de diferencias de autenticación y formato entre diferentes APIs.