2013-06-27 3 views
0

import csv 패키지를 사용하여 .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 파일에 데이터를 쓰고 싶다 :

import csv 
with open('myfile.csv', 'w') as f: 
     w = csv.writer(f, dialect = 'excel-tab') 
     w.writerows(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 
28.89, 1.0, 17.634, 0.025, 2.0, 17.781, 0.029, 3.0, 17.454, 0.026 

나는 다음과 같은 시도

하지만 결과에는 대괄호가 있습니다. 이 문제에 접근하는 더 좋은 방법이 있는지 궁금합니다.

답변

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) 
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.)