Når HTTP-ruta krev eksplisitt proxykontroll, hent CSV-en først og lat pandas handsame byta som kjem:

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 tek seg av transporten; HTTP-proxylista leverer kandidatar for endepunkt til ei offentleg HTTP-rute. pandas får eit filliknande objekt og brukar dei vanlege vala sine for skiljeteikn, kolonnar, koding og datatypar.

Å kontrollere HTTP-resultatet før parsing hindrar at ein tydeleg HTTP-feiltekst blir handsama som ein tabell. Sjå også etter uventa innhald: ei innloggings- eller policyside kan returnere 200 og framleis vere HTML i staden for den førespurde CSV-en.

For HTTP-URL-ar blir storage_options til read_csv sende vidare som førespurnadshovud. Det grensesnittet er ikkje ei proxies-tilordning i Requests-stil.

Ein buffer har ikkje eit arkivfilnamn som kan styre komprimeringsutleiinga. Oppgje compression når nyttelasta som blir henta krev det. Same hent-først-oppsett fungerer med read_excel og ein bytebuffer, med reknearkmotoren som passar til formatet.

Dette dømet held heile svaret i minnet. For ein stor eksport, straum det til ei styrt lokal fil og parse den fila, med chunking der dataarbeidsflyten støttar det.

Relaterte artiklar