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 ଏବଂ ବାଇଟ ବଫର ସହିତ କାମ କରେ, ସେହି ଫର୍ମାଟ ପାଇଁ ଉପଯୁକ୍ତ ସ୍ପ୍ରେଡସିଟ ଇଞ୍ଜିନ ବ୍ୟବହାର କରି।
ଏହି ଉଦାହରଣ ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରତିକ୍ରିୟା ମେମୋରୀରେ ରଖେ। ବଡ଼ ରପ୍ତାନି ପାଇଁ, ଏହାକୁ ପରିଚାଳିତ ସ୍ଥାନୀୟ ଫାଇଲକୁ ସ୍ଟ୍ରିମ କରନ୍ତୁ ଏବଂ ସେହି ଫାଇଲ ପାର୍ସ କରନ୍ତୁ, ଡାଟା ୱାର୍କଫ୍ଲୋ ସମର୍ଥନ କରୁଥିବା ସ୍ଥାନରେ ଖଣ୍ଡରେ ବିଭକ୍ତ କରି।