我需要8所列出的内容导出到CSV文件(谷歌加州出口)的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输出非常有用。 –
将你的问题分解成更小的问题。如果你没有字典,为什么使用'csv.Dictwriter()'?或者,如果您因某种原因想要使用“Dictwriter”,只需专注于创建字典即可。通过在彼此之上堆叠错误来使你的生活变得复杂。 –
事情是,我不知道如何写没有字典的行,DictWriter.writerow需要一个字典;我正在寻找一种方法,将每个字段的值直接传递给编写器函数 顺便说一下,在我的程序中似乎很难制作单个字典,因为我需要具有多个类的日期(键)的多个值 – Pitynet