Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dict内部Dict到excel导出_Python_Pandas_Numpy_Dictionary - Fatal编程技术网

Python Dict内部Dict到excel导出

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

我正在尝试将dict文件保存到excel(我尝试使用xlsxwriter)。 例如:

      {'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文件的数据结构。你能举个例子吗?