我正在尝试将dict文件保存为excel(我已尝试使用xlsxwriter)。 例如:
{'Mod1': {'A': 0.029999999999999999,
'B': 0.050000000000000003, 'C':
0.14000000000000001}, 'Mod2':{'A2': ....}}
我在第一列(在excel中)获得Mod1,然后是' 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
有什么想法吗?谢谢!
答案 0 :(得分: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
类别,您可以使用以下内容替换内部循环:
for category in sorted(ranks[model].keys()):
worksheet.write(row, col + 1, category)
worksheet.write(row, col + 2, ranks[model][category])
row += 1