У меня небольшой CSV-файл:
name,dept,city
sri,cse,hyd
vatsasa,ece,bang
Я могу прочитать файл csv через csvreader следующим образом:
response = s3.get_object(Bucket=src_bucket, Key=key)
lines = response['Body'].read().splitlines(True)
reader = csv.reader(lines)
first_row = next(reader)
print(' first row is: ', first_row)
readers=list(reader)
for row1 in readers:
print('this is second iteration: ', row1)
Ниже приведен результат вышеприведенного кода:
first row is: ['name', 'Dept', 'City']
this is second iteration: ['sree', 'NULL', 'Bengaluru']
this is second iteration: ['vatsasa', 'NULL', 'Hyd']
this is second iteration: ['NULL', 'NULL', 'VJA']
this is second iteration: ['capgemini', 'NULL', 'TPTY']
this is second iteration: ['DTP', 'NULL', 'NULL']
this is second iteration: ['Bengaluru', 'NULL', 'TVM']
this is second iteration: ['sre', 'NULL', 'MNGL']
this is second iteration: ['vatsas', 'NULL', 'Kochi']
this is second iteration: ['NULL', 'NULL', 'TVM']
this is second iteration: ['capgemin', 'NULL', 'MNGL']
this is second iteration: ['DTP9', 'NULL', 'Kochi']
this is second iteration: ['NULL', 'NULL', 'TVM']
this is second iteration: ['sree0', 'NULL', 'MNGL']
Однако я попытался напечатать строки из читателя в конце скрипта как:
response = s3.get_object(Bucket=src_bucket, Key=key)
lines = response['Body'].read().splitlines(True)
reader = csv.reader(lines)
first_row = next(reader)
print(' first row is: ', first_row)
readers=list(reader)
for row1 in readers:
print('this is second iteration: ', row1)
for row in reader:
print('this is first iteration: ', row)
Но результат тот же, что и выше:
first row is: ['name', 'Dept', 'City']
this is second iteration: ['sree', 'NULL', 'Bengaluru']
this is second iteration: ['vatsasa', 'NULL', 'Hyd']
this is second iteration: ['NULL', 'NULL', 'VJA']
this is second iteration: ['capgemini', 'NULL', 'TPTY']
this is second iteration: ['DTP', 'NULL', 'NULL']
this is second iteration: ['Bengaluru', 'NULL', 'TVM']
this is second iteration: ['sre', 'NULL', 'MNGL']
this is second iteration: ['vatsas', 'NULL', 'Kochi']
this is second iteration: ['NULL', 'NULL', 'TVM']
this is second iteration: ['capgemin', 'NULL', 'MNGL']
this is second iteration: ['DTP9', 'NULL', 'Kochi']
this is second iteration: ['NULL', 'NULL', 'TVM']
this is second iteration: ['sree0', 'NULL', 'MNGL']
Строки из первой итерации, т.е. строки из считывателя не печатаются.
Меня беспокоит то, что я должен использовать свой CSV-файл для дальнейших проверок, но сначала не могу прочитать строки из «читателя».
Для подтверждения уместно ли использовать «читатели» для дальнейшего процесса или нужно читать из «читателя»?
Примечание: пробовал этот код на лямбда aws