ອ່ານ CSV ຜ່ານ proxy ດ້ວຍ pandas ແລະ Requests
ດຶງ CSV ດ້ວຍ Requests transport ທີ່ຕັ້ງຄ່າແລ້ວ, ກວດຜົນ HTTP, ແລະໃຫ້ pandas byte buffer ເພື່ອແຍກວິເຄາະ.
ເມື່ອເສັ້ນທາງ HTTP ຕ້ອງການການຄຸ້ມຄອງ proxy ຢ່າງຊັດເຈນ, ດຶງ CSV ກ່ອນແລ້ວໃຫ້ pandas ຈັດການ byte ທີ່ໄດ້ມາ:
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 ຈັດການການຂົນສົ່ງ; ລາຍຊື່ proxy HTTP ໃຫ້ຜູ້ສະໝັກຈຸດປາຍທາງສຳລັບເສັ້ນທາງ HTTP ສາທາລະນະ. pandas ຮັບວັດຖຸຄ້າຍຄືໄຟລ໌ ແລະໃຊ້ຕົວເລືອກປົກກະຕິຂອງຕົວຢ່າງ delimiter, column, encoding ແລະ data-type.
ການກວດຜົນ HTTP ກ່ອນແຍກວິເຄາະຊ່ວຍຫຼີກລ້ຽງການຖືວ່າໂຕຂໍ້ຜິດ HTTP ທີ່ຊັດເຈນເປັນຕາຕະລາງ. ກວດເນື້ອຫາທີ່ບໍ່ຄາດຄິດນຳ: ໜ້າເຂົ້າສູ່ລະບົບ ຫຼື ໜ້ານະໂຍບາຍອາດສົ່ງຄືນ 200 ແຕ່ຍັງເປັນ HTML ແທນ CSV ທີ່ຂໍ.
ສຳລັບ URL HTTP, storage_options ຂອງ read_csv ຖືກສົ່ງຕໍ່ເປັນ header ຂອງຄຳຮ້ອງ. ອິນເຕີເຟສນັ້ນບໍ່ແມ່ນການແມັບ proxies ແບບ Requests.
Buffer ບໍ່ມີຊື່ໄຟລ໌ຄັງເກັບເພື່ອນຳທາງການສະຫຼຸບການບີບອັດ. ລະບຸ compression ເມື່ອ payload ທີ່ໄດ້ມາຕ້ອງການ. ການຈັດວາງດຶງກ່ອນແບບດຽວກັນໃຊ້ໄດ້ກັບ read_excel ແລະ byte buffer, ໂດຍໃຊ້ engine ສະເປຣດຊີດທີ່ເໝາະກັບຮູບແບບນັ້ນ.
ຕົວຢ່າງນີ້ເກັບຄຳຕອບທັງໝົດໄວ້ໃນໜ່ວຍຄວາມຈຳ. ສຳລັບການສົ່ງອອກຂະໜາດໃຫຍ່, stream ມັນໄປຍັງໄຟລ໌ທ້ອງຖິ່ນທີ່ຄຸ້ມຄອງ ແລະແຍກວິເຄາະໄຟລ໌ນັ້ນ, ພ້ອມການແບ່ງເປັນຕອນບ່ອນທີ່ຂະບວນການຂໍ້ມູນຮອງຮັບ.