Поскольку данные, как представляется, находятся в формате словаря, кажется, что вы действительно должны использовать csv.DictWriter () для фактического вывода строк с соответствующей информацией заголовка. Это должно позволить упростить обработку. Параметр fieldnames затем правильно настроил порядок, в то время как вывод первой строки, поскольку заголовки позволили бы его читать и обрабатывать позже csv.DictReader ().
Например, Майк Рефас использовал
output = csv.writer(sys.stdout)
output.writerow(data[0].keys()) # header row
for row in data:
output.writerow(row.values())
Однако просто измените начальную настройку на output = csv.DictWriter (наборы файлов, fieldnames = data [0] .keys ())
Обратите внимание, что поскольку порядок элементов в словарь не определен, вам, возможно, придется явно создавать записи полей. Как только вы это сделаете, писатель будет работать. Затем записи записываются так, как показано на рисунке.