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 ಮತ್ತು ಬೈಟ್ ಬಫರ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆ ಸ್ವರೂಪಕ್ಕೆ ಸೂಕ್ತವಾದ ಸ್ಪ್ರೆಡ್ಶೀಟ್ ಎಂಜಿನ್ ಬಳಸಿ.
ಈ ಉದಾಹರಣೆ ಸಂಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಇಡುತ್ತದೆ. ದೊಡ್ಡ ರಫ್ತಿಗಾಗಿ, ಅದನ್ನು ನಿರ್ವಹಿತ ಸ್ಥಳೀಯ ಫೈಲ್ಗೆ ಸ್ಟ್ರೀಮ್ ಮಾಡಿ ಮತ್ತು ಆ ಫೈಲ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಿ, ಡೇಟಾ ಕಾರ್ಯಹರಿವು ಬೆಂಬಲಿಸುವಲ್ಲಿ ಚಂಕಿಂಗ್ ಮಾಡಿ.