Cando a ruta HTTP necesita control explícito do proxy, obteña primeiro o CSV e deixe que pandas xestione os bytes resultantes:

from io import BytesIO
import pandas as pd
import requests

route = {
    'http': 'http://proxy.example:8080',
    'https': 'http://proxy.example:8080',
}
with requests.get(
    'https://data.example/report.csv',
    proxies=route,
    timeout=(5, 30),
) as response:
    response.raise_for_status()
    frame = pd.read_csv(BytesIO(response.content), encoding='utf-8')

O proxy encárgase do transporte; a lista de proxies HTTP fornece candidatos de punto final para unha ruta HTTP pública. pandas recibe un obxecto semellante a un ficheiro e aplica as súas opcións habituais de delimitador, columnas, codificación e tipos de datos.

Comprobar o resultado HTTP antes de analizar evita tratar como táboa un corpo de erro HTTP evidente. Revise tamén o contido inesperado: unha páxina de inicio de sesión ou de políticas pode devolver 200 e seguir sendo HTML en lugar do CSV solicitado.

Nas URL HTTP, os storage_options de read_csv envíanse como cabeceiras da solicitude. Esa interface non é unha asignación de proxies ao estilo de Requests.

Un búfer non ten nome de ficheiro de arquivo que guíe a inferencia de compresión. Especifique compression cando a carga obtida o requira. A mesma disposición de obter primeiro funciona con read_excel e un búfer de bytes, co motor de folla de cálculo axeitado a ese formato.

Este exemplo mantén toda a resposta en memoria. Para unha exportación grande, transmítaa a un ficheiro local xestionado e analice ese ficheiro, con fragmentación cando o fluxo de traballo de datos o permita.

Artigos relacionados