Python Dict内部Dict到excel导出
我正在尝试将dict文件保存到excel(我尝试使用xlsxwriter)。 例如:Python Dict内部Dict到excel导出,python,pandas,numpy,dictionary,Python,Pandas,Numpy,Dictionary,我正在尝试将dict文件保存到excel(我尝试使用xlsxwriter)。 例如: {'Mod1': {'A': 0.029999999999999999, 'B': 0.050000000000000003, 'C': 0.14000000000000001}, 'Mod2':{'A2': ....}} 我得到第一列的Mod1(excel),然后是“A”,但不是分数。 我的代码如下,我想我必须添加一个for循环,但我不知道如何添加 row = 0
{'Mod1': {'A': 0.029999999999999999,
'B': 0.050000000000000003, 'C':
0.14000000000000001}, 'Mod2':{'A2': ....}}
我得到第一列的Mod1(excel),然后是“A”,但不是分数。
我的代码如下,我想我必须添加一个for循环,但我不知道如何添加
row = 0
col = 0
score = 0
for key in ranks.keys():
row += 1
worksheet.write(row, col, key)
for item in ranks[key]:
worksheet.write(row, col + 1, item)
row += 1
有什么想法吗?谢谢大家! 下面是一个小的工作示例,它基于您正在寻找的输出结构的最佳猜测。如果不太匹配,应该很容易更改。这更像是一个数据结构问题,而不是XlsxWriter问题:
import xlsxwriter
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 0
ranks = {'Mod1': {'A': 0.029999999999999999,
'B': 0.050000000000000003,
'C': 0.14000000000000001},
'Mod2': {'A': 1.029999999999999999,
'B': 1.050000000000000003,
'C': 1.14000000000000001}}
for model in ranks.keys():
worksheet.write(row, col, model)
row += 1
for key, value in ranks[model].items():
worksheet.write(row, col + 1, key)
worksheet.write(row, col + 2, value)
row += 1
workbook.close()
输出:
对于排序的A。。C
categories您可以用如下内容替换内部循环:
for category in sorted(ranks[model].keys()):
worksheet.write(row, col + 1, category)
worksheet.write(row, col + 2, ranks[model][category])
row += 1
我不理解您想要的excel文件的数据结构。你能举个例子吗?