конвертировать файл csv в список словарей

У меня есть файл csv

col1, col2, col3 1, 2, 3 4, 5, 6 

Я хочу создать список словарей из этого csv.

вывод:

 a= [{'col1':1, 'col2':2, 'col3':3}, {'col1':4, 'col2':5, 'col3':6}] 

Как я могу это сделать?

4 Solutions collect form web for “конвертировать файл csv в список словарей”

Использовать csv.DictReader :

 >>> import csv >>> >>> with open('test.csv') as f: ... a = [{k: int(v) for k, v in row.items()} ... for row in csv.DictReader(f, skipinitialspace=True)] ... >>> a [{'col2': 2, 'col3': 3, 'col1': 1}, {'col2': 5, 'col3': 6, 'col1': 4}] 

Используя модуль csv и понимание списка:

 import csv with open('foo.csv') as f: reader = csv.reader(f, skipinitialspace=True) header = next(reader) a = [dict(zip(header, map(int, row))) for row in reader] print a 

Вывод:

 [{'col3': 3, 'col2': 2, 'col1': 1}, {'col3': 6, 'col2': 5, 'col1': 4}] 

Ну, в то время как другие люди делали это разумно, я реализовал это наивно. Я полагаю, что мой подход имеет преимущество в том, что он не нуждается в каких-либо внешних модулях, хотя он, вероятно, потерпит неудачу с странными конфигурациями значений. Здесь он просто для справки:

 a = [] with open("csv.txt") as myfile: firstline = True for line in myfile: if firstline: mykeys = "".join(line.split()).split(',') firstline = False else: values = "".join(line.split()).split(',') a.append({mykeys[n]:values[n] for n in range(0,len(mykeys))}) 
 # similar solution via namedtuple: import csv from collections import namedtuple with open('foo.csv') as f: fh = csv.reader(open(f, "rU"), delimiter=',', dialect=csv.excel_tab) headers = fh.next() Row = namedtuple('Row', headers) list_of_dicts = [Row._make(i)._asdict() for i in fh] 
  • CSV new-line символ, отображаемый в некотируемой ошибке поля
  • Загрузка Python UTF-8 JSON
  • как вычислить краткое геодезическое расстояние пути матрицы смежности csv ?
  • Почему csvwriter.writerow () помещает запятую после каждого символа?
  • Запись в CSV из списка, write.row, кажется, останавливается в странном месте
  • python сравнивает элементы считывателя dict из двух файлов csv
  • Чтение файла CSV UTF8 с помощью Python
  • Чтение файла CSV в массив numpy, первая строка в виде строк, остальное как float
  • Python - лучший язык программирования в мире.