Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
Formas más simples de obtener encabezados CSV de URL

Creé una aplicación web donde los usuarios pueden cargar contactos usando archivos CSV.

Una vez que se cargue el archivo CSV, me gustaría asignar los campos del encabezado a los campos de la aplicación.

El problema al que me enfrento es encontrar una manera simple y eficiente de devolver una lista de encabezados CSV desde un enlace CSV.

Idealmente, me gustaría que la lista regrese a través de una solicitud HTTP; o alternativamente, usando JavaScript, para que pueda devolverlo a la aplicación.

Por ejemplo, aquí hay un archivo CSV que contiene recuentos de huracanes: https://people.sc.fsu.edu/~jburkardt/data/csv/hurricanes.csv

Los encabezados son:

 Month, "Average", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015"

Mi idea es ejecutar un script de Python en AWS Lambda que obtenga los encabezados CSV y luego los envíe a la aplicación mediante una solicitud HTTP.

¿Hay otra forma de hacer esto del lado del cliente o sin tener que configurar una infraestructura de back-end como AWS Lambda?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Hay una opción para transmitir desde requests y puede procesar CSV por línea. Ver: Flujo de trabajo de contenido del cuerpo

Ejemplo:

 import requests url = "https://raw.githubusercontent.com/codeforamerica/ohana-api/master/data/sample-csv/addresses.csv" r = requests.get(url, stream=True) for line in r.iter_lines(): header = line.decode("utf-8").split(",") print(header) break

Esto le dará sólo el encabezado. He usado un ejemplo de archivo CSV sin procesar de github: sample-csv

about 4 years ago · Juan Pablo Isaza Denunciar

0

La respuesta "simple" es obviamente descargar el archivo completo y trabajar con eso. Pero es posible que pueda ahorrar algo de tiempo. Si el archivo acepta descargas parciales, estás de suerte. Para comprobar que:

 import requests requests.head("https://people.sc.fsu.edu/%7Ejburkardt/data/csv/hurricanes.csv").headers

rendimientos

 {'Date': 'Mon, 27 Dec 2021 14:00:21 GMT', 'Server': 'Apache/2.4.46 (Fedora) OpenSSL/1.1.1g', 'Last-Modified': 'Mon, 27 Jun 2016 12:37:53 GMT', 'ETag': '"1f6-53641c9fb0a40"', 'Accept-Ranges': 'bytes', 'Content-Length': '502', 'X-Frame-Options': 'SAMEORIGIN', 'Keep-Alive': 'timeout=5, max=100', 'Connection': 'Keep-Alive', 'Content-Type': 'text/csv'}

Tenga en cuenta los Accept-Ranges: 'bytes' . Puede solicitar partes específicas del archivo. ¡Bote!

Entonces es cuestión de trabajar con las requests y los encabezados:

 resume_headers = {'Range':'bytes=0-2048'} r = requests.get(url, stream=True, headers=resume_headers) for chunk in r.iter_content(chunk_size=1024): print(chunk)

Producción:

 b'"Month", "Average", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015"\n"May", 0.1, 0, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0 \n"Jun", 0.5, 2, 1, 1, 0, 0, 1, 1, 2, 2, 0, 1\n"Jul", 0.7, 5, 1, 1, 2, 0, 1, 3, 0, 2, 2, 1\n"Aug", 2.3, 6, 3, 2, 4, 4, 4, 7, 8, 2, 2, 3\n"Sep", 3.5, 6, 4, 7, 4, 2, 8, 5, 2, 5, 2, 5\n"Oct", 2.0, 8, 0, 1, 3, 2, 5, 1, 5, 2, 3, 0\n"Nov", 0.5, 3, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1\n"Dec", 0.0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1\n\n'

Entonces tenemos nuestro encabezado, así como un par de líneas más.

Tenga en cuenta que imprimo, pero puede guardar en una variable, una cadena grande, escribir en un archivo CSV local,... lo que se adapte a sus necesidades. Además, seleccioné un rango de 2048 bytes y fragmentos de 1024 bytes; adaptarse a la situación!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda