Kun HTTP-reitti vaatii selvän välityspalvelimen hallinnan, hae CSV ensin ja anna pandasin käsitellä saadut tavut:

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

Välityspalvelin hoitaa siirron; HTTP-välityspalvelinluettelo tarjoaa päätepiste-ehdokkaita julkiselle HTTP-reitille. pandas saa tiedostomaista muistuttavan olion ja soveltaa tavallisia erotin-, sarake-, koodaus- ja tietotyyppiasetuksiaan.

HTTP-tuloksen tarkistaminen ennen jäsennystä estää ilmeisen HTTP-virherungon käsittelyn taulukkona. Tutki myös odottamatonta sisältöä: kirjautumis- tai käytäntösivu voi palauttaa 200 ja olla silti HTML pyydetyn CSV:n sijaan.

HTTP-URL-osoitteissa read_csv:n storage_options välitetään pyyntöotsakkeina. Tämä rajapinta ei ole Requests-tyylinen proxies-kartoitus.

Puskurilla ei ole arkistotiedostonimeä, joka ohjaisi pakkauksen päättelyä. Määritä compression, kun haettu hyötykuorma sitä edellyttää. Sama ensin-hae-järjestely toimii read_excelin ja tavupuskurin kanssa, käyttäen kyseiselle muodolle sopivaa taulukkolaskentaohjelman moottoria.

Tämä esimerkki pitää koko vastauksen muistissa. Suurelle viennille virtauta se hallittuun paikalliseen tiedostoon ja jäsennä kyseinen tiedosto, paloitellen siellä missä tietotyönkulku tukee sitä.

Aiheeseen liittyvät artikkelit