dict里面的dict excel出口

时间:2017-05-21 20:00:34

标签: python pandas numpy dictionary

我正在尝试将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

有什么想法吗?谢谢!

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

<强>输出:

enter image description here

对于已排序的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