Legi CSV-on tra prokurilo per pandas kaj Requests
Akiru CSV-on per agordita Requests-transporto, kontrolu la HTTP-rezulton kaj donu al pandas bajtan bufron por analizi.
Kiam la HTTP-itinero bezonas eksplicitan prokurilan regadon, akiru la CSV-on unue kaj lasu pandas trakti la rezultajn bajtojn:
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')
La prokurilo prizorgas la transporton; la listo de HTTP-prokuriloj donas finpunktajn kandidatojn por publika HTTP-itinero. pandas ricevas dosier-similan objekton kaj aplikas siajn kutimajn opciojn pri disigilo, kolumnoj, kodigo kaj datumtipoj.
Kontroli la HTTP-rezulton antaŭ analizado malhelpas trakti evidentan HTTP-eraran korpon kiel tabelon. Ankaŭ esploru neatenditan enhavon: ensaluta aŭ politika paĝo povas redoni 200 kaj ankoraŭ esti HTML anstataŭ la petita CSV.
Por HTTP-URL-oj, la storage_options de read_csv estas plusenditaj kiel petaj kaplinioj. Tiu interfaco ne estas proxies-mapo laŭ la stilo de Requests.
Bufro ne havas arkinan dosiernomon por gvidi kunpreman konkludon. Indiku compression kiam la akirita ŝarĝo tion postulas. La sama unue-akira aranĝo funkcias kun read_excel kaj baja bufro, uzante la tabelan motoron taŭgan por tiu formato.
Ĉi tiu ekzemplo tenas la tutan respondon en memoro. Por granda eksporto, fluigu ĝin en administritan lokan dosieron kaj analizu tiun dosieron, per segmentado kie la datumlaborfluo tion subtenas.