CSV-ի ընթերցում պրոքսիի միջոցով pandas-ով և Requests-ով
Ստացեք CSV կազմակերպված Requests փոխադրմամբ, ստուգեք 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-ը ստանում է ֆայլանման օբյեկտ և կիրառում իր սովորական ընտրանքները՝ բաժանիչի, սյուների, կոդավորման և տվյալների տեսակների համար։
Մինչ վերլուծելը HTTP արդյունքը ստուգելը խուսափում է ակնհայտ HTTP սխալի մարմինը որպես աղյուսակ դիտարկելուց։ Ստուգեք նաև անսպասելի բովանդակությունը. մուտքի կամ քաղաքականության էջը կարող է վերադարձնել 200 և դեռ HTML լինել պահանջված CSV-ի փոխարեն։
HTTP URL-ների համար read_csv-ի storage_options-ը փոխանցվում են որպես հարցման վերնագրեր։ Այդ ինտերֆեյսը Requests ոճի proxies քարտեզագրում չէ։
Բուֆերը չունի արխիվի ֆայլի անուն, որը կուղղորդի սեղմման եզրակացությունը։ Նշեք compression, երբ ստացված բեռը դա պահանջում է։ Նույն նախ-ստացիր կարգը աշխատում է read_excel-ի և բայթային բուֆերի հետ՝ օգտագործելով այդ ձևաչափին համապատասխան աղյուսակային շարժիչը։
Այս օրինակը պահում է ամբողջ պատասխանը հիշողության մեջ։ Մեծ արտահանման համար հոսքով փոխանցեք այն կառավարվող տեղական ֆայլի և վերլուծեք այդ ֆայլը, բաժանելով մասերի, որտեղ տվյալների աշխատահոսքը դա աջակցում է։