因此,我无法使用import csv
包将数据写入.csv文件。我的数据以下列一般格式存储:
[(Time, [[ID#, MAG, Merr], [ID#, MAG, Merr]])]
我的数据集示例如下所示:
data = [(24.23, [[1.0, 18.116, 0.062], [2.0, 18.236, 0.063], [3.0, 17.855, 0.063]]),
(25.67, [[1.0, 17.968, 0.044], [2.0, 18.189, 0.051], [3.0, 17.757, 0.048]]),
(26.89, [[1.0, 17.634, 0.025], [2.0, 17.781, 0.029], [3.0, 17.454, 0.026]])]
我想将此数据写入.csv文件,如下所示:
24.23, 1.0, 18.116, 0.062, 2.0, 18.236, 0.063, 3.0, 17.855, 0.063
25.67, 1.0, 17.968, 0.044, 2.0, 18.189, 0.051, 3.0, 17.757, 0.048
28.89, 1.0, 17.634, 0.025, 2.0, 17.781, 0.029, 3.0, 17.454, 0.026
我尝试了以下内容:
import csv
with open('myfile.csv', 'w') as f:
w = csv.writer(f, dialect = 'excel-tab')
w.writerows(data)
但我在结果中得到了大量的括号。我想知道是否有更好的方法来解决这个问题?
答案 0 :(得分:2)
在将列表写入csv
文件之前,您应先将列表展平。
with open('myfile.csv', 'w') as f:
w = csv.writer(f, dialect = 'excel-tab') #use `delimiter = ','` for ',' in file
for item in data:
lis = [item[0]] + [y for x in item[1] for y in x]
w.writerow(lis)
答案 1 :(得分:0)
好吧,您可以随时手动解压缩数据:
data = [[a, b, c, d, e, f, g, h, i, j] for a, [[b,c,d],[e,f,g],[h,i,j]] in data]
...或者在SO上有很多关于如何展平数据的答案(例如here)