Када HTTP рута захтева изричиту контролу проксија, прво преузмите CSV и препустите pandas-у да обради добијене бајтове:

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

Прокси преузима транспорт; листа HTTP проксија нуди кандидате за крајње тачке јавне HTTP руте. pandas прима објекат налик датотеци и примењује своје уобичајене опције за разделник, колоне, кодирање и типове података.

Провера HTTP резултата пре парсирања спречава да се очигледно тело HTTP грешке третира као табела. Прегледајте и неочекивани садржај: страница за пријаву или правила може вратити 200 и даље бити HTML уместо траженог CSV-а.

За HTTP URL-ове, storage_options read_csv прослеђују се као заглавља захтева. Тај интерфејс није proxies мапирање у стилу Requests-а.

Бафер нема назив архиве који би водио закључак о компресији. Наведите compression када то захтева преузети садржај. Исти поступак „прво преузми“ ради са read_excel и бајтним бафером, уз одговарајући мотор за табеле за тај формат.

Овај пример држи цео одговор у меморији. За велики извоз, проследите га у управљану локалну датотеку и парсирајте ту датотеку, са дељењем на делове где то ток података подржава.

Повезани чланци