Saat rute HTTP memerlukan kendali proxy eksplisit, ambil CSV terlebih dahulu dan biarkan pandas menangani byte yang dihasilkan:

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

Proxy menangani transport; daftar proxy HTTP menyediakan kandidat endpoint untuk rute HTTP publik. pandas menerima objek mirip berkas dan menerapkan opsi pemisah, kolom, pengodean, dan tipe data yang biasa.

Memeriksa hasil HTTP sebelum menguraikan mencegah badan galat HTTP yang jelas diperlakukan sebagai tabel. Periksa juga konten tak terduga: halaman login atau kebijakan bisa mengembalikan 200 dan tetap berupa HTML alih-alih CSV yang diminta.

Untuk URL HTTP, storage_options read_csv diteruskan sebagai header permintaan. Antarmuka itu bukan pemetaan proxies bergaya Requests.

Buffer tidak memiliki nama berkas arsip untuk memandu inferensi kompresi. Tentukan compression saat payload yang diambil memerlukannya. Susunan ambil-dulu yang sama berlaku dengan read_excel dan buffer byte, memakai mesin spreadsheet yang sesuai untuk format itu.

Contoh ini menyimpan seluruh respons di memori. Untuk ekspor besar, alirkan ke berkas lokal yang terkelola dan uraikan berkas itu, dengan pemotongan bagian bila alur kerja data mendukungnya.

Artikel terkait