Όταν η διαδρομή HTTP απαιτεί ρητό έλεγχο proxy, ανακτήστε πρώτα το CSV και αφήστε το pandas να χειριστεί τα byte που προκύπτουν:

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 αναλαμβάνει τη μεταφορά· η λίστα proxy HTTP παρέχει υποψήφια endpoints για μια δημόσια διαδρομή HTTP. Το pandas λαμβάνει ένα αντικείμενο τύπου αρχείου και εφαρμόζει τις συνήθεις επιλογές του για διαχωριστικό, στήλες, κωδικοποίηση και τύπους δεδομένων.

Ο έλεγχος του αποτελέσματος HTTP πριν από την ανάλυση αποτρέπει τη μεταχείριση ενός προφανούς σώματος σφάλματος HTTP ως πίνακα. Εξετάστε επίσης μη αναμενόμενο περιεχόμενο: μια σελίδα σύνδεσης ή πολιτικής μπορεί να επιστρέψει 200 και να είναι ακόμη HTML αντί για το ζητούμενο CSV.

Για URL HTTP, τα storage_options του read_csv προωθούνται ως κεφαλίδες αιτήματος. Αυτή η διεπαφή δεν είναι αντιστοίχιση proxies τύπου Requests.

Ένας buffer δεν έχει όνομα αρχείου αρχείου συμπίεσης για να καθοδηγήσει τη συμπερασματολογία συμπίεσης. Καθορίστε compression όταν το ανακτημένο φορτίο το απαιτεί. Η ίδια διάταξη «πρώτα ανάκτηση» λειτουργεί με read_excel και buffer byte, με τον κατάλληλο για τη μορφή μηχανισμό υπολογιστικών φύλλων.

Αυτό το παράδειγμα κρατά ολόκληρη την απάντηση στη μνήμη. Για μεγάλη εξαγωγή, μεταφέρετέ την σε ένα διαχειριζόμενο τοπικό αρχείο και αναλύστε αυτό το αρχείο, με κατάτμηση όπου το υποστηρίζει η ροή εργασίας δεδομένων.

Σχετικά άρθρα