Ko HTTP-pot potrebuje izrecen nadzor posredniškega strežnika, najprej pridobite CSV in pustite pandasu, da obdela nastale bajte:

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

Posredniški strežnik opravi prenos; seznam posredniških strežnikov HTTP ponuja kandidate za končne točke javne HTTP-poti. pandas prejme datoteki podoben objekt in uporabi svoje običajne možnosti za ločilo, stolpce, kodiranje in podatkovne tipe.

Preverjanje rezultata HTTP pred razčlenjevanjem prepreči, da bi očitno telo napake HTTP obravnavali kot tabelo. Preglejte tudi nepričakovano vsebino: prijavna ali pravilniška stran lahko vrne 200 in je še vedno HTML namesto zahtevane CSV.

Pri spletnih naslovih HTTP se storage_options read_csv posredujejo kot glave zahteve. Ta vmesnik ni preslikava proxies v slogu Requests.

Medpomnilnik nima imena arhivske datoteke, ki bi vodilo sklepanje o stiskanju. Določite compression, ko to zahteva pridobljena vsebina. Ista ureditev »najprej pridobi« deluje z read_excel in bajtnim medpomnilnikom, s pregledniškim pogonom, primernim za to obliko.

Ta primer hrani celoten odgovor v pomnilniku. Za velik izvoz ga pretakajte v upravljano lokalno datoteko in to datoteko razčlenite, z delitvijo na dele, kjer podatkovni potek dela to podpira.

Sorodni članki