将python嵌套字典项写入文件

时间:2020-10-09 19:43:19

标签: python dictionary nested directory-structure writefile

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

(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等)

2 个答案:

答案 0 :(得分:0)

您的输入数据在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])

答案 1 :(得分:0)

尝试以下

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



依此类推