Wanneer de HTTP-route expliciete proxycontrole vereist, haal de CSV dan eerst op en laat pandas de resulterende bytes verwerken:

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')

De proxy verzorgt het transport; de HTTP-proxylijst levert eindpuntkandidaten voor een openbare HTTP-route. pandas ontvangt een bestandachtig object en past zijn gebruikelijke opties toe voor scheidingsteken, kolommen, codering en gegevenstypen.

Het HTTP-resultaat controleren vóór het parseren voorkomt dat een duidelijke HTTP-foutbody als tabel wordt behandeld. Bekijk ook onverwachte inhoud: een inlog- of beleidspagina kan 200 teruggeven en toch HTML zijn in plaats van de gevraagde CSV.

Voor HTTP-URL's worden de storage_options van read_csv doorgegeven als verzoekheaders. Die interface is geen proxies-toewijzing in Requests-stijl.

Een buffer heeft geen archiefbestandsnaam om de compressieafleiding te sturen. Geef compression op wanneer de opgehaalde payload dat vereist. Dezelfde eerst-ophalen-opzet werkt met read_excel en een bytebuffer, met de spreadsheet-engine die bij dat formaat past.

Dit voorbeeld houdt het volledige antwoord in het geheugen. Voor een grote export, stream het naar een beheerd lokaal bestand en parse dat bestand, met chunking waar de dataworkflow dat ondersteunt.

Gerelateerde artikelen