pandas နှင့် Requests ဖြင့် proxy မှတစ်ဆင့် CSV ဖတ်ခြင်း
ပြင်ဆင်ထားသော Requests transport ဖြင့် CSV ကို ဆွဲယူပြီး HTTP ရလဒ်ကို စစ်ဆေးကာ pandas အား ခွဲခြမ်းစိတ်ဖြာရန် byte buffer ပေးပါ။
HTTP လမ်းကြောင်းတွင် proxy ထိန်းချုပ်မှု ရှင်းလင်းစွာ လိုအပ်ပါက CSV ကို အရင်ဆွဲယူပြီး ရရှိသော byte များကို 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')
proxy သည် သယ်ယူပို့ဆောင်ရေးကို ကိုင်တွယ်သည်; HTTP proxy စာရင်း သည် အများသုံး HTTP လမ်းကြောင်းအတွက် အဆုံးမှတ် ကိုယ်စားလှယ်လောင်းများကို ပေးသည်။ pandas သည် ဖိုင်နှင့်တူသော အရာဝတ္ထုကို လက်ခံပြီး ပုံမှန် delimiter, column, encoding နှင့် data-type ရွေးချယ်မှုများကို အသုံးပြုသည်။
ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီ HTTP ရလဒ်ကို စစ်ဆေးခြင်းသည် ထင်ရှားသော HTTP အမှားကိုယ်ထည်ကို ဇယားအဖြစ် သတ်မှတ်ခြင်းကို ရှောင်ရှားစေသည်။ မမျှော်လင့်သော အကြောင်းအရာကိုလည်း စစ်ဆေးပါ: လော့ဂ်အင်ဝင် သို့မဟုတ် မူဝါဒစာမျက်နှာက 200 ပြန်ပေးသော်လည်း တောင်းဆိုထားသော CSV အစား HTML ဖြစ်နိုင်သည်။
HTTP URL များအတွက် read_csv ၏ storage_options များကို တောင်းဆိုမှု header အဖြစ် ပို့ဆောင်သည်။ ထို interface သည် Requests ပုံစံ proxies မြေပုံခြင်း မဟုတ်ပါ။
buffer တွင် ချုံ့မှုကို ခန့်မှန်းရန် archive ဖိုင်အမည် မရှိပါ။ ရယူထားသော payload လိုအပ်ပါက compression ကို သတ်မှတ်ပါ။ တူညီသော အရင်ဆွဲယူ စီစဉ်မှုသည် read_excel နှင့် byte buffer တို့ဖြင့် အလုပ်လုပ်ပြီး ထို format အတွက် သင့်လျော်သော spreadsheet engine ကို အသုံးပြုသည်။
ဤဥပမာသည် တုံ့ပြန်မှုတစ်ခုလုံးကို မမ်မိုရီတွင် ထားရှိသည်။ ကြီးမားသော export အတွက် ၎င်းကို စီမံခန့်ခွဲထားသော ဒေသတွင်းဖိုင်သို့ stream လုပ်ပါ ပြီး ထိုဖိုင်ကို ခွဲခြမ်းစိတ်ဖြာပါ၊ data workflow က ပံ့ပိုးသည့်နေရာတွင် အပိုင်းပိုင်းခွဲပါ။