将dict的dict写入csv文件

时间:2016-12-23 08:33:37

标签: python csv dictionary

我有dictinoary就是这样

{id1:{t1:1, t2:2, t3:4, t5:3 ...}, id2:{t2:1, t3:3...},...id3332:{tX:X, tX:X}}

虽然dict的长度是3332,但这里有3332个ID。但每个id的长度可能不一样。那些键(t1, t2, t3...)也是随机的。

我想将这些数据输出到csv文件中,如下所示:

IDs   t1  t2   t3 t4  t5 ...
id1    1   2   4   0   3
id2    0   1   3   0   0  
id3    0   1   0   4   0
 :
id3332   ...

对于每个ID,这意味着,如果时间值为(e.g. for id1, t1=1, t2=2),则在相应位置输出该值,如果该时间没有值(e.g. for id1, no value for t4, then output 0)

我刚检查了文档,并试图使用csv.write,但没有弄清楚。

可以使用

生成样本数据
sample = {103061863: {'26/08/2014 07:20:00': '"5"', '23/08/2014 20:25:00': '"8"', '14/08/2014 18:55:00': '"6"'}, 103061862: {'06/08/2014 11:15:00': '"5"', '21/08/2014 13:10:00': '"5"', '01/08/2014 05:55:00': '"5"'}, 103061819: {'02/08/2014 09:50:00': '"6"', '17/08/2014 07:30:00': '"5"', '08/08/2014 20:30:00': '"7"', '23/08/2014 20:25:00': '"7"', '21/08/2014 09:50:00': '"6"', '17/08/2014 15:00:00': '"7"'}}

所以想要这种形式的csv文件:

IDs   '26/08/2014 07:20:00'  '23/08/2014 20:25:00'   '14/08/2014 18:55:00' t4  t5 ...
103061863    5                        8               6         ...
103061862    0                        3               0         ... 
103061819    0                        7               0         ...

1 个答案:

答案 0 :(得分:2)

使用pandas库是个好例子 - 首先将您的字母转换为pandas.DataFrame,然后保存to_csv

import pandas as pd

df = pd.DataFrame.from_dict(d, orient='index').fillna(0)
df.to_csv(...)