繁体   English   中英

如何在字典中编写一个唯一字典,其中列表作为 csv 文件的键?

[英]How to write a unique dictionary within dictionary with list as keys to a csv file?

我有一本字典,其中每个键都有一个唯一的字典作为其值。 现在每个键的值都是一个列表。 例如:

d = {'date1': {'name1': [1, 2], 'name2': [2, 4, 2]}, 'date2': {'name1': [4, 5, 6]}} 

我的目标是将此字典写入 csv 文件。 我想让文件名成为外部字典的键值(date1.csv,date2.csv),其中每个文件都有内部字典键作为列,值沿着列向下。 使用我们的示例:

date1.csv

name1    name2
1        2
2        4
         2

我试图遍历外部字典,打开一个 csv 文件,其中包含要写入的这个键的名称,但我不知道如何管理将列表作为列中的值。

提前致谢。

这是一个有趣的。

import itertools

d = {'date1': {'name1': [1, 2], 'name2': [2, 4, 2]}, 'date2': {'name1': [4, 5, 6]}} 

for k,v in d.items():
    with open(k+'.csv','w') as fout:
        print( ','.join(v.keys()), file=fout)
        for cols in itertools.zip_longest(*v.values()):
            cols = ['' if i is None else str(i) for i in cols]
            print( ','.join(cols), file=fout )
[timr@Tims-Pro:~/src]$ python x.py
[timr@Tims-Pro:~/src]$ cat date1.csv 
name1,name2
1,2
2,4
,2
[timr@Tims-Pro:~/src]$ cat date2.csv
name1
4
5
6
[timr@Tims-Pro:~/src]$ 

为简单起见,请使用pandas

import pandas as pd

d = {'date1': {'name1': [1, 2], 'name2': [2, 4, 2]}, 'date2': {'name1': [4, 5, 6]}} 

for filename in d:
    df = pd.DataFrame({key:pd.Series(value) for key, value in d[filename].items() })
    df.to_csv(filename+'.csv')

暂无
暂无

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

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