繁体   English   中英

如何编写嵌套的 python dicts 以在 csv 或 excel 文件中使用制表符和换行符分隔列和行?

[英]How to write nested python dicts to separate columns and rows with tabs and newlines in csv or excel file?

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

我想把它写成以下形式:

在此处输入图像描述

到 csv 或 excel 文件。

我已经尝试使用csv.DictWriter和 standard.write 方案与“\t”和“\n”以及在 pandas 中尝试它,但在最终的 csv柱子。

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

我从来没有使用过这个,但我刚刚为.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

暂无
暂无

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

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