Když HTTP trasa vyžaduje výslovné řízení proxy, nejprve stáhněte CSV a nechte pandas zpracovat 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 zajišťuje transport; seznam HTTP proxy dodává kandidáty koncových bodů pro veřejnou HTTP trasu. pandas obdrží objekt podobný souboru a použije své obvyklé volby pro oddělovač, sloupce, kódování a datové typy.

Kontrola HTTP výsledku před parsováním zabrání tomu, aby se zjevné tělo HTTP chyby považovalo za tabulku. Prohlédněte si i neočekávaný obsah: přihlašovací nebo zásadová stránka může vrátit 200 a přesto být HTML místo požadovaného CSV.

U HTTP URL se storage_options read_csv předávají jako hlavičky požadavku. Toto rozhraní není mapování proxies ve stylu Requests.

Buffer nemá název archivu, který by řídil odhad komprese. Určete compression, když to načtená data vyžadují. Stejné uspořádání „nejprve stáhnout“ funguje s read_excel a bajtovým bufferem, s tabulkovým enginem vhodným pro daný formát.

Tento příklad drží celou odpověď v paměti. Pro velký export přesměrujte jej do spravovaného místního souboru a ten soubor parsujte, s dělením na části, kde to datový workflow podporuje.

Související články