繁体   English   中英

如何在python中没有括号的情况下将复杂的嵌套列表写入csv文件?

[英]How to write a complex nested list to a csv file without brackets in python?

因此,我无法使用import csvimport 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)

但是我在结果中得到了很多括号。 我想知道是否有更好的方法来解决这个问题?

在将其写入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)

好吧,您可以随时手动解压缩数据:

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还有很多其他答案(例如这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM