Мне нужно экспортировать содержимое из 8 списков в файл CSV (экспорт Google Cal)Python: агрегировать не уникальные списки значений в словарь для вывода CSV
# Class dates (there can be the same value for several iterations)
datefield = []
# All fields are linked to a date (same index)
starttimefield = []
endtimefield = []
subjectfield = []
typefield = []
teacherfield = []
groupfield = []
roomfield = []
То, что я ищу, такой вывод CSV на каждой строке (для каждой даты в DateField):
subjectfield,datefield,starttimefield,datefield,endtimefield,FALSE,typefield,roomfield
до сих пор, я попробовал это (как-то он не хочет писать, если используется режим 'wb'
):
rows = subjectfield,datefield,starttimefield,datefield,endtimefield,FALSE,typefield,roomfield
zip(*rows)
with open('classes.csv', 'w') as csvfile:
writer = csv.DictWriter(
csvfile, fieldnames=['Subject', 'Start Date', 'Start Time', 'End Date', 'End Time', 'All Day Event', 'Description', 'Location', 'Private']
)
writer.writeheader()
for row in rows:
writer.writerow(row)
Проблема заключается в том, что я получаю CSV-файл, как это (по одной строке для каждого значения списка):
subjectfield[0]
subjectfield[1]
subjectfield[...]
datefield[0]
datefield[1]
...
Я понимаю, что csv.DictWriter() writerow принимать только словари, и я понятия не имею, как это сделать. объединить списки в словарь так, как мне это нужно; datefield может содержать одно и то же значение несколько раз, так как в тот же день могут быть несколько классов.
Поэтому то, что я искал бы что-то вроде этого:
with open('classes.csv', 'w') as csvfile:
writer = csv.DictWriter(
csvfile, fieldnames=['Subject', 'Start Date', 'Start Time', 'End Date', 'End Time', 'All Day Event', 'Description', 'Location', 'Private']
)
writer.writeheader()
for i in range(len(datefield)):
writer.writerow(subjectfield[i], datefield[i], starttimefield[i], datefield[i], endtimefield[i], "FALSE", typefield[i], roomfield[i])
чека из [панд] (http://pandas.pydata.org/). Это полезно для анализа данных, обработки данных и поддерживает вывод excel csv txt. –
сломать вам проблемы на более мелкие. Если у вас нет dict, зачем использовать 'csv.Dictwriter()'? Или, если вы действительно хотите использовать 'Dictwriter', по какой-то причине просто сосредоточитесь на создании dict для начала. Вы делаете вашу жизнь сложной, укладывая ошибки друг на друга. –
Дело в том, что я не знаю, как писать строки без словарей, DictWriter.writerow требует словаря; Я ищу способ передать непосредственно значения для каждого поля в функцию writow Btw, кажется, сложно сделать какой-либо словарь в моей программе, потому что мне нужны кратные значения для дат (ключей), которые имеют несколько классов – Pitynet