stream=True letur viðgerðina byrja, áðrenn kropur ein svars gjøgnum proxy er heilt niðurtikin. Fyri CSV, send eina tekstlinju-iterator til csv.reader, so skilimerki inni í gásum og fleirralinju førslur verða verandi CSV-dáta.

Fyri eitt dømis UTF-8 fílu við semikolonum:

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

Vel veruliga encoding og dialekt fílunnar. Fyri almenna CSV-niðurtøku á loyvdum almennum proxy-leið HTTP-proxy listin veitir evni til routes URL. Hendan útgávan normar fysisk linjuendir til LF: iter_lines tekur teir burt, og generatorin leggur eina nýggja linju aftur fyri CSV-parsaran. Tað hevur týdning, tá eitt felt inni í gásum heldur fram á aðra fysiska linju.

Fyri arbeiðsfløður sum krevja byte-nágreina varðveiting av innbygdum CRLF-teknum, brúka eina streymandi tekst-innpakkingu sum varðveitir teir linjuendarnar. Hin viljandi normeringin í døminum hóskar til førslu-rada viðgerð har LF er ætlaða framsetingin.

Eitt svar, nógvar lesingar

Iteratorin nýtir bitar av einum HTTP-svari. Hon sendir ikki eina nýggja fyrispurning fyri hvørja linju. HTTP Range fyrispurningar eru annar mekanisma og eyðmerkja ikki av sær sjálvum mark milli CSV-førslna.

At kalla response.text ella savna allar raðir í ein lista fór at ført alt innihaldið aftur í minnið. Streymingar tørvur enn á plássi fyri flutningsbuffar og núverandi førslu, sum sjálv kann halda ein stóran felt.

Svar-kontekstin letur kropin, tá lykkjan fer út, eisini við tíðliga treffi. Les-tíðarmarkið avmarkar bíðing eftir innkomandi dáta, ikki samlaða lívstíð av einum stórari fíluflutningi.

Skyldar greinar