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 അതിന്റെ സാധാരണ delimiter, column, encoding, data-type ഓപ്ഷനുകൾ പ്രയോഗിക്കുന്നു.

പാഴ്സ് ചെയ്യുന്നതിന് മുൻപ് HTTP ഫലം പരിശോധിച്ചാൽ വ്യക്തമായ HTTP പിശക് ബോഡിയെ പട്ടികയായി കണക്കാക്കുന്നത് ഒഴിവാക്കാം. അപ്രതീക്ഷിത ഉള്ളടക്കവും പരിശോധിക്കുക: ലോഗിൻ അല്ലെങ്കിൽ നയ പേജ് 200 തിരികെ നൽകിയാലും ആവശ്യപ്പെട്ട CSV-യ്ക്ക് പകരം HTML ആകാം.

HTTP URL-കൾക്ക് read_csv-ന്റെ storage_options അഭ്യർത്ഥന ഹെഡറുകളായി കൈമാറുന്നു. ആ ഇന്റർഫേസ് Requests രീതിയിലുള്ള proxies മാപ്പിംഗ് അല്ല.

ബഫറിന് കംപ്രഷൻ അനുമാനത്തെ നയിക്കാൻ ആർക്കൈവ് ഫയൽനാമം ഇല്ല. എടുത്ത പേലോഡിന് ആവശ്യമെങ്കിൽ compression വ്യക്തമാക്കുക. അതേ ആദ്യം-എടുക്കുക ക്രമം read_excel-ഉം ബൈറ്റ് ബഫറും ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു, ആ ഫോർമാറ്റിന് അനുയോജ്യമായ സ്പ്രെഡ്ഷീറ്റ് എൻജിൻ ഉപയോഗിച്ച്.

ഈ ഉദാഹരണം മുഴുവൻ പ്രതികരണവും മെമ്മറിയിൽ സൂക്ഷിക്കുന്നു. വലിയ എക്സ്പോർട്ടിന്, അത് ഒരു മാനേജുചെയ്ത പ്രാദേശിക ഫയലിലേക്ക് സ്ട്രീം ചെയ്യുക, ആ ഫയൽ പാഴ്സ് ചെയ്യുക, ഡാറ്റ വർക്ക്ഫ്ലോ പിന്തുണയ്ക്കുന്നിടത്ത് ചങ്കിംഗ് ഉപയോഗിച്ച്.

അനുബന്ധ ലേഖനങ്ങൾ