将python嵌套字典项写入文件

问题描述

我有一个嵌套的键字典,值对的结构如下:

(0,{'hoovervilles': 13,'depression.': 10,'everyday:': 6}),(1,{'mother': 10,'child': 9,'daughter': 3,'prevail': 1}),(2,{'music': 6,'style,': 2,'listening': 2})

对于该词典中的每个项目,我想用tsvkeys来写一个values

这将为字典中的单个项目写键,值:

csv_file = '.../frequencies_dir/2.tsv'

try:
    with open(csv_file,'w') as f: 
        for key,value in entry.items(): 
            f.write("%s\t%s\n"%(key,entry[key])) 
except IOError:
    print("I/O error")

如何将字典中的每个项目写入目录中的单独文件tsv),并根据字典中的项目编号tsv命名文件(例如2.tsv3.tsv等)

解决方法

您的输入数据在python中无效。但是,如果是这样的话:

entry= [(0,{'hoovervilles': 13,'depression': 10,'everyday': 6}),(1,{'mother': 10,'child': 9,'daughter': 3,'prevail': 1}),(2,{'music': 6,'style': 2,'listening': 2})]

您可以写:

for e in entry:
    print(e[0])
    with open(os.path.join('/Users/soumyabratakole/test/',str(e[0]) + '.tsv'),'w') as f:
        w = csv.DictWriter(f,delimiter='\t',fieldnames = e[1].keys())
        w.writeheader()
        w.writerow(e[1])

,

尝试以下

entry = (0,'depression.': 10,'everyday:': 6}),'style,': 2,'listening': 2});
for i in entry:
    print(i[1])
    try:
        with open(f'{i[0]}.tsv','w') as f:
            for key,value in i[1].items(): 
                f.write("%s\t%s\n"%(key,i[1][key]))
                break
    except IOError:
        print("I/O error")

这样您将获得三个.tsv文件,例如0.tsv0.tsv2.tsv,其中

0.tsv看起来

hoovervilles    13



依此类推