Ixandar rekords CSV b'ħafna linji b'Python Requests u csv.reader
Ixandar risposta permezz ta' proxy fis csv.reader u żomm il-fruntieri tar-rekords minflok ma taqsam kull linja fiżika fid-delimitatore.
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.