pandas અને Requests સાથે પ્રોક્સી દ્વારા CSV વાંચવું
રૂપરેખાંકિત Requests ટ્રાન્સપોર્ટ સાથે CSV મેળવો, તેનું HTTP પરિણામ ચકાસો, અને pandas ને પાર્સિંગ માટે બાઇટ બફર આપો.
જ્યારે 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 અને બાઇટ બફર સાથે કામ કરે છે, તે ફોર્મેટને યોગ્ય સ્પ્રેડશીટ એન્જિન વાપરીને.
આ ઉદાહરણ આખો પ્રતિભાવ મેમરીમાં રાખે છે. મોટા એક્સપોર્ટ માટે, તેને સંચાલિત સ્થાનિક ફાઇલમાં સ્ટ્રીમ કરો અને તે ફાઇલ પાર્સ કરો, જ્યાં ડેટા વર્કફ્લો ટેકો આપે ત્યાં ચંકિંગ સાથે.