Keď HTTP trasa vyžaduje výslovné riadenie proxy, najprv stiahnite CSV a nechajte pandas spracovať výsledné bajty:

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

Proxy zabezpečuje transport; zoznam HTTP proxy dodáva kandidátov koncových bodov pre verejnú HTTP trasu. pandas dostane objekt podobný súboru a použije svoje obvyklé možnosti pre oddeľovač, stĺpce, kódovanie a dátové typy.

Kontrola výsledku HTTP pred parsovaním zabráni tomu, aby sa zrejmé telo HTTP chyby považovalo za tabuľku. Prezrite si aj nečakaný obsah: prihlasovacia alebo zásadová stránka môže vrátiť 200 a napriek tomu byť HTML namiesto požadovaného CSV.

Pri HTTP URL sa storage_options read_csv odovzdávajú ako hlavičky požiadavky. Toto rozhranie nie je mapovanie proxies v štýle Requests.

Buffer nemá názov archívu, ktorý by riadil odhad kompresie. Určte compression, keď to získaný obsah vyžaduje. Rovnaké usporiadanie „najprv stiahnuť“ funguje s read_excel a bajtovým bufferom, s tabuľkovým enginom vhodným pre daný formát.

Tento príklad drží celú odpoveď v pamäti. Pri veľkom exporte presmerujte ho do spravovaného lokálneho súboru a ten súbor parsujte, s delením na časti tam, kde to dátový workflow podporuje.

Súvisiace články