R. Cox
R. Cox

Reputation: 879

Dictionary of Dictionaries to Excel

I have a dictionary of dictionaries (Di_1):

Di_1 = {1 : {101 : ['cat', 'mouse'],
             102 : ['dog'],
             103 : []},
        2 : {101 : ['cat', 'mouse', 'dog'],
             102 : ['dog', 'cat'],
             103 : ['mouse']},
        3 : {101 : ['cat', 'mouse', 'dog', 'lion'],
             102 : ['dog', 'cat'],
             103 : ['mouse', 'dragon']}}

I would like to export it to Excel (test_1.xlsx). I tried it in Pandas:

import pandas as pd
writer = pd.ExcelWriter('test_1.xlsx', engine='openpyxl') 
for A in [1,2,3]:
    df_A = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in Di_1[A].items() ])).T
    df_A.to_excel(writer, sheet_name=str(A))

This code ran but it didn't export anything to excel. How can I export it please?

Upvotes: 1

Views: 59

Answers (1)

jezrael
jezrael

Reputation: 863511

Here missing writer.save():

writer = pd.ExcelWriter('test_1.xlsx', engine='openpyxl') 
for A in [1,2,3]:
    df_A = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in Di_1[A].items() ])).T
    df_A.to_excel(writer, sheet_name=str(A))
  
writer.save()

Solution should be simplify with DataFrame.from_dict:

writer = pd.ExcelWriter('test_1.xlsx', engine='openpyxl') 
for A in [1,2,3]:
    df_A = pd.DataFrame.from_dict(Di_1[A], orient='index')
    df_A.to_excel(writer, sheet_name=str(A))
  
writer.save()

Upvotes: 1

Related Questions