2017-02-25 123 views
1

我有一本字典的格式如下:加載數據到csv

data_dict = {'a' : [1,2,3], 'b' : [[4,5],[6,7],[8,9]]} 

我想這樣做是在一列「格式」解析從字典數據csv文件。所以,關鍵是標題和價值觀去算賬,所以輸出應該是這樣的:

a b 
1 [4,5] 
2 [6,7] 
3 [8,9] 

我曾嘗試使用csv.DictWritercsv.writer但沒有已經制定了我。

回答

6

您可以使用zip來聚合來自多個iterables元素:

>>> rows = zip([1,2,3], [[4,5],[6,7],[8,9]]) 
>>> for row in rows: 
...  print(row) 
... 
(1, [4, 5]) 
(2, [6, 7]) 
(3, [8, 9]) 

import csv 
import sys 

data_dict = {'a' : [1,2,3], 'b' : [[4,5],[6,7],[8,9]]}  
keys = sorted(data_dict) # to get ordered keys 
values = [data_dict[key] for key in keys] 

writer = csv.writer(sys.stdout, delimiter='\t') # Replace `sys.stdout` as you need 
writer.writerow(keys) 
for row in zip(*values): 
    writer.writerow(row)