Når HTTP-ruten krever eksplisitt proxykontroll, hent CSV-en først og la pandas håndtere bytene som kommer:

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

Proxyen håndterer transporten; HTTP-proxylisten leverer kandidater for endepunkter til en offentlig HTTP-rute. pandas mottar et fillignende objekt og bruker sine vanlige valg for skilletegn, kolonner, koding og datatyper.

Å kontrollere HTTP-resultatet før parsing hindrer at en tydelig HTTP-feiltekst behandles som en tabell. Se også etter uventet innhold: en innloggings- eller policyside kan returnere 200 og fortsatt være HTML i stedet for den forespurte CSV-en.

For HTTP-URL-er videresendes storage_options til read_csv som forespørselsheadere. Det grensesnittet er ikke en proxies-tilordning i Requests-stil.

En buffer har ikke et arkivfilnavn som kan styre komprimeringsutledningen. Angi compression når nyttelasten som hentes krever det. Samme hent-først-oppsett fungerer med read_excel og en bytebuffer, med regnearkmotoren som passer til formatet.

Dette eksempelet holder hele svaret i minnet. For en stor eksport, strøm den til en administrert lokal fil og parse den filen, med chunking der dataarbeidsflyten støtter det.

Relaterte artikler