Pan fo'r llwybr HTTP angen rheolaeth ddirprwyol benodol, estynnwch y CSV yn gyntaf a gadewch i pandas drin y beit sy'n deillio:

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

Mae'r dirprwy'n trin y cludiant; mae'r rhestr ddirprwy HTTP yn darparu ymgeiswyr pen draw ar gyfer llwybr HTTP cyhoeddus. Mae pandas yn derbyn gwrthrych tebyg i ffeil ac yn cymhwyso ei opsiynau arferol ar gyfer rhanadwy, colofnau, amgodi a mathau data.

Mae gwirio'r canlyniad HTTP cyn dosrannu yn osgoi trin corff gwall HTTP amlwg fel tabl. Archwiliwch gynnwys annisgwyl hefyd: gall tudalen mewngofnodi neu bolisi ddychwelyd 200 ac fod yn HTML o hyd yn lle'r CSV a ofynnwyd amdano.

Ar gyfer URLau HTTP, anfonir storage_options read_csv fel pennawdau cais. Nid yw'r rhyngwyneb hwnnw'n fapio proxies ar ffordd Requests.

Nid oes gan buffer enw archif i lywio casgliad cywasgu. Nodwch compression pan fo'r llwyth a gafwyd yn gofyn amdano. Mae'r un drefn estyn-yn-gyntaf yn gweithio gyda read_excel a buffer beit, gan ddefnyddio'r peiriant taenlen sy'n addas i'r fformat hwnnw.

Mae'r enghraifft hon yn cadw'r ymateb cyfan yn y cof. Ar gyfer allforiad mawr, ffrydiwch ef i ffeil leol a reolir a dosrennwch y ffeil honno, gyda darnio lle mae'r llif gwaith data yn cefnogi hynny.

Erthyglau cysylltiedig