Amikor az HTTP-útvonal kifejezett proxyvezérlést igényel, először töltse le a CSV-t, és hagyja, hogy a pandas kezelje a kapott bájtokat:

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

A proxy végzi a szállítást; az HTTP-proxylista végpontjelölteket kínál egy nyilvános HTTP-útvonalhoz. A pandas fájlszerű objektumot kap, és alkalmazza szokásos elválasztó-, oszlop-, kódolási és adattípus-beállításait.

Az HTTP-eredmény elemzés előtti ellenőrzése megakadályozza, hogy egy nyilvánvaló HTTP-hibatörzset táblaként kezeljünk. Vizsgálja meg a váratlan tartalmat is: egy bejelentkező vagy irányelvoldal 200-at adhat vissza, és mégis HTML lehet a kért CSV helyett.

HTTP URL-ek esetén a read_csv storage_options beállításai kérésfejlécként kerülnek továbbításra. Ez az interfész nem Requests-stílusú proxies-leképezés.

A puffernek nincs archívfájl-neve, amely a tömörítés következtetését vezetné. Adja meg a compression értéket, ha a letöltött tartalom megköveteli. Ugyanez az előbb-letöltés elrendezés működik a read_excel-lel és egy bájtpufferrel, a formátumhoz illő táblázatkezelő-motorral.

Ez a példa a teljes választ a memóriában tartja. Nagy export esetén streamelje egy kezelt helyi fájlba, és azt a fájlt elemezze, darabolással ott, ahol az adatmunkafolyamat támogatja.

Kapcsolódó cikkek