如何在csv或excel文件中使用制表符和换行符将嵌套python dict写入分隔列和行?

2024-09-30 14:38:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些嵌套字典的形式: nestedDicts = {"vertical1st":{"channel1st":{"format1st":{"size":1},"format2nd":{"size":2}}},"vertical2nd":{"channel2nd":{"format3rd":{"size":3},"format4th":{"size":4}}}}

我想用以下形式写出来:

enter image description here

到csv或excel文件

我尝试过使用csv.DictWriter和带有“\t”和“\n”的标准.write模式,也尝试过在pandas中使用它,但在最终的csv文件中,它在一列或同一列中的多行中输出所有内容

任何关于如何进行这种格式化的建议都将不胜感激


Tags: 文件csvsize字典excel形式format3rdformat4th
1条回答
网友
1楼 · 发布于 2024-09-30 14:38:56

我从未使用过这个,但我只是为.csv文件编写了简单的解决方案。我希望它能帮助你

解决方案:

import csv

nestedDicts = {"format1nd":{"channel1st":{"format1st":{"size":1},"format2nd":{"size":2}}},"vertical2nd":{"channel2nd":{"format3rd":{"size":3},"format4th":{"size":4}}}}

def specific_writer(d, iterator=0):
    for i in d:
        if isinstance(d[i], dict):
            writer.writerow([" " for j in range(iterator)] + [i])
            specific_writer(d[i], iterator+1)
        else:
            writer.writerow([" " for j in range(iterator)] + [i + str(d[i])])
            iterator = 0

with open("fruits.csv", "w") as f:
    writer = csv.writer(f, delimiter='|')
    specific_writer(nestedDicts)

f.close()

收到的文件:

format1nd
 |channel1st
 | |format1st
 | | |size1
 | |format2nd
 | | |size2
vertical2nd
 |channel2nd
 | |format4th
 | | |size4
 | |format3rd
 | | |size3

相关问题 更多 >