конвертировать файл 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 Python при обновлении файла
  • Как сохранить список в виде CSV-файла с помощью python с новыми строками?
  • Ориентация на Python - CSV Транспонирование большого количества столбцов в строки
  • Загрузить CSV-файл с помощью Spark
  • Прочитать CSV и график цветной линии
  • csv writer не закрывает файл
  • Условное слияние для CSV-файлов с использованием python (pandas)
  • Python: Как использовать DictReader дважды?
  • Python - лучший язык программирования в мире.