2017-05-21 2 views
-1

私はdictファイルを保存しようとしています(私はxlsxwriterを使用しようとしました)。 例:Dictの中にdictをエクスポートするには

 {'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

希望するExcelファイルのデータ構造がわかりません。あなたは例を投稿できますか? –

答えて

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カテゴリについては

enter image description here

for category in sorted(ranks[model].keys()): 
     worksheet.write(row, col + 1, category) 
     worksheet.write(row, col + 2, ranks[model][category]) 
     row += 1 
+0

回答がありがとうございました!それは助け! – hdatas

関連する問題