我有数据布局:
experiences: [{
company: String,
title: String,
description: String,
startDate: Date,
endDate: Date
}],
我需要以这种格式在csv中写入数据,但我不能这样做。它必须像excel一样。
如果我选择标题expirience,我需要获取所有标题(公司,标题,描述,startDate,endDate)和所有数据。此外,我需要有机会选择subheader及其数据。
是否可以在csv中进行?
答案 0 :(得分:1)
如果要将数据写入csv文件:
import csv
import operator
data = operator.itemgetter('company', 'title', 'description', 'startDate', 'endDate')
with open('path/to/output', 'w') as fout:
outfile = csv.writer(fout)
for e in experiences:
outfile.writerow([str(d) for d in data(e)])
如果要从csv文件中读取特定列数据:
import csv
import operator
data = operator.itemgetter(0,3,4) # or whichever columns you want
experiences = []
keys = 'company startDate endDate'.split() # the column headers of those columns
with open('path/to/csv') as infile:
for _ in range(2): infile.readline()
for row in csv.reader(infile):
experiences.append(dict(zip(keys, data(row))))
答案 1 :(得分:0)
" CSV"有各种各样的定义(和标准)。所以它并不完全清楚你在问什么,但是如果你想在CSV文件的单个列中嵌入多列数据,那么通常可以通过选择合适的不同字段分隔符来完成。嵌入数据。
例如,假设逗号用于"顶级"分离器,使用管道通常很方便" (" |")将字符作为下一级别分隔符。在您的情况下,嵌入式属性(公司,标题,描述和日期)似乎不太可能包含管道字符,因此管道可能是一个明智的选择,尽管包含用于确保值的软件是明智的。正在消毒"以某种方式。
通常,在选择一对分隔符时需要注意。如果逗号/管道不起作用,则可能是tab / pipe。