stream=True iħalli l-ipproċessar jibda qabel ma l-ġisem ta' risposta permezz ta' proxy jkun tniżżel għal kollox. Għal CSV, għaddi iteratur ta' linji ta' test lill-csv.reader sabiex id-delimitaturi fil-virgoletti u r-rekords b'ħafna linji jibqgħu data CSV.

Għal fajl UTF-8 illustrattiv li juża l-punt u l-virgola:

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

Agħżel l-inkodar u d-djalett reali tal-fajl. Għal tniżżil pubbliku ta' CSV fuq rotta ta' proxy pubbliku permessa, il-lista tal-proxy HTTP toffri kandidati għall-URL routes. Din il-verżjoni tinormalizza t-truf tal-linji fiżiċi għal LF: iter_lines ineħħihom, u l-ġeneratur iżid linja ġdida lura għall-parser CSV. Dan huwa importanti meta qasam fil-virgoletti jkompli fuq linja fiżika oħra.

Għal flussi tax-xogħol li jeħtieġu preservazzjoni preċiża fil-bytes tal-karattri CRLF inkorporati, uża arranġament ta' tgeżwir tat-test bl-istriming li jżomm dawk it-truf tal-linji. It-tinormalizzar apposta tal-eżempju jaqbel għall-ipproċessar orjentat lejn rekords fejn LF hija r-rappreżentazzjoni maħsuba.

Risposta waħda, qari ħafna

L-iteratur jikkonsma biċċiet minn risposta HTTP waħda. Ma joħroġx talba ġdida għal kull linja. It-talbiet HTTP Range huma mekkaniżmu ieħor u ma jidentifikawx b'mod naturali l-fruntieri tar-rekords CSV.

Sejħa lil response.text jew il-ġbir tar-ringieli kollha f'lista ġġib il-kontenut kollu lura fil-memorja. L-istriming xorta jeħtieġ spazju għall-buffers tat-trasport u r-rekord attwali, li hu stess jista' jkun fih qasam kbir.

Il-kuntest tar-risposta jagħlaq il-ġisem meta l-linja joħroġ, inkluż qbil bikri. Il-limitu tal-ħin tal-qari jillimita l-istennija għad-data dieħla, mhux il-ħajja totali ta' trasferiment ta' fajl kbir.

Artikli relatati