Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

172
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda