У меня есть файл FILE.CSV с некоторыми данными:Python CSV в словарь с первой строкой в качестве заголовка
fn,ln,tel
john,doe,023322
jul,dap,024322
jab,sac,0485
Я хотел бы иметь массив, который я могу получить доступ, как это:
file = 'file.csv'
with open(file,'rU') as f:
reader = csv.DictReader(f)
print reader[0].fn
Поэтому я бы хотел, чтобы он печатал первое имя из первой записи. К сожалению, я получаю эту ошибку:
ValueError: I/O operation on closed file
Как я могу сделать это так, что мне не нужно, чтобы сохранить файл открыт, и что я могу играть с моим массивом. Кстати, мне не нужно записывать обратно в CSV-файл, мне просто нужно использовать данные, и для этого лучше всего использовать массив, который я могу изменить.
Какой выходной сигнал вы хотите иметь или массив? Также ваша ошибка неправильная для вашего кода –
Обратите внимание, что 'reader [0]' не будет работать в или из инструкции 'with'. Вы получите 'AttributeError', потому что объект' reader' не имеет метода '__getitem__'. Кроме того, строки 'DictReader' являются обычными словарями, поэтому' row.fn' не работает, вы должны использовать 'row ['fn']'. Вы кое-что упростили здесь. –