stream=True huruhusu uchakataji kuanza kabla ya mwili wa jibu kupitia proksi kupakuliwa kikamilifu. Kwa CSV, pitisha kirejelezi cha mistari ya maandishi kwa csv.reader ili vitenganishi vilivyo ndani ya alama za nukuu na rekodi za mistari mingi vibaki kuwa data ya CSV.

Kwa faili ya mfano ya UTF-8 inayotumia nukta-mkato:

import csv
import requests

routes = {'https': 'http://proxy.example:8080'}
with requests.get(
    'https://data.example/observations.csv',
    proxies=routes,
    stream=True,
    timeout=(5, 30),
) as response:
    response.raise_for_status()
    response.encoding = 'utf-8'
    lines = (
        line + '\n'
        for line in response.iter_lines(
            chunk_size=65536, decode_unicode=True)
    )
    for record in csv.reader(lines, delimiter=';'):
        if record and record[0] == 'wanted':
            print(record)
            break

Chagua usimbaji na lahaja halisi za faili. Kwa upakuaji wa CSV wa umma kwenye njia ya proksi ya umma inayoruhusiwa, orodha ya proksi za HTTP hutoa watahiniwa kwa URL ya routes. Toleo hili husawazisha miisho halisi ya mistari kuwa LF: iter_lines huiondoa, na kizalishaji huongeza mstari mpya tena kwa kichanganuzi cha CSV. Hilo ni muhimu wakati sehemu iliyo ndani ya alama za nukuu inaendelea kwenye mstari mwingine halisi.

Kwa mtiririko wa kazi unaohitaji uhifadhi sahihi wa baiti wa herufi za CRLF zilizopachikwa, tumia mpangilio wa kifuniko cha maandishi cha kutiririsha unaohifadhi miisho hiyo ya mistari. Usawazishaji wa kukusudia katika mfano unafaa kwa uchakataji unaoelekezwa kwenye rekodi ambapo LF ndiyo uwakilishi unaokusudiwa.

Jibu moja, usomaji mwingi

Kirejelezi hutumia vipande kutoka jibu moja la HTTP. Hakitoi ombi jipya kwa kila mstari. Maombi ya HTTP Range ni utaratibu mwingine na hayatambui mipaka ya rekodi za CSV kwa asili.

Kuita response.text au kukusanya safu zote kwenye orodha kungerudisha maudhui yote kwenye kumbukumbu. Utiririshaji bado unahitaji nafasi kwa bufaa za usafirishaji na rekodi ya sasa, ambayo yenyewe inaweza kuwa na sehemu kubwa.

Muktadha wa jibu hufunga mwili wakati kitanzi kinatoka, ikiwa ni pamoja na ulinganifu wa mapema. Kikomo cha muda wa kusoma hupunguza kusubiri data inayoingia, si muda wote wa uhamishaji wa faili kubwa.

Makala zinazohusiana