Мне не совсем понятно, что вы пытаетесь вывести, но, возможно, один из этих примеров может помочь.
Учитывая это содержимое файла csv:
a,b,c
11,12,13
21,22,23
Первый вариант - поместить заголовки в список, а затем остальные данные, перенесенные в другой список.Затем вызовите
dict()
в сжатом списке, здесь не нужно
zip_longest
:
with open(my_csv, newline='') as f:
reader = csv.reader(f)
headers = next(reader, None) # place headers in a list
rows = [row for row in zip(*reader)] # this transpose the data
print(rows) #=> [('11', '21'), ('12', '22'), ('13', '23')]
my_dictionary = dict(zip(headers, rows))
print(my_dictionary)
#=> {'a': ('11', '21'), 'b': ('12', '22'), 'c': ('13', '23')}
Второй вариант создает список словарей:
my_dictionaries = []
with open(my_csv, newline='') as f:
reader = csv.reader(f)
headers = next(reader, None) # place headers in a list
for row in reader:
my_dictionaries.append(dict(zip(headers, row)))
print(my_dictionaries)
#=> [{'a': '11', 'b': '12', 'c': '13'}, {'a': '21', 'b': '22', 'c': '23'}]