Kada HTTP ruta zahtijeva izričitu kontrolu proxyja, prvo dohvatite CSV i prepustite pandasu obradu dobivenih bajtova:

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 preuzima transport; popis HTTP proxyja nudi kandidate za završne točke javne HTTP rute. pandas prima objekt nalik datoteci i primjenjuje svoje uobičajene opcije za razdjelnik, stupce, kodiranje i tipove podataka.

Provjera HTTP rezultata prije parsiranja sprječava da se očito tijelo HTTP pogreške tretira kao tablica. Pregledajte i neočekivani sadržaj: stranica za prijavu ili pravila može vratiti 200 i dalje biti HTML umjesto traženog CSV-a.

Za HTTP URL-ove, storage_options read_csv prosljeđuju se kao zaglavlja zahtjeva. To sučelje nije proxies mapiranje u stilu Requestsa.

Međuspremnik nema naziv arhive koji bi vodio zaključivanje o kompresiji. Navedite compression kada to zahtijeva dohvaćeni sadržaj. Isti pristup „prvo dohvati“ radi s read_excel i bajtnim međuspremnikom, uz odgovarajući motor za tablice za taj format.

Ovaj primjer drži cijeli odgovor u memoriji. Za velik izvoz, prenesite ga u upravljanu lokalnu datoteku i parsirajte tu datoteku, s dijeljenjem na komade gdje tok podataka to podržava.

Povezani članci