Il dictionary nidificato per csv excel

Ho provato molti approcci diversi per get il risultato sotto in excel,

Monday Tuesday Wednesday Thursday Friday Saturday Sunday Breakfast 0 0 289 0 265 0 0 Lunch 832 0 0 0 0 0 0 Dinner 201 0 0 0 0 0 620 

dal seguente dictionary:

  my_dict = {"Monday":{"Breakfast": 0, "Lunch": 832, "Dinner": 201}, "Tuesday":{"Breakfast": 0, "Lunch": 0, "Dinner": 0}, "Wednesday":{"Breakfast": 289, "Lunch": 0, "Dinner": 0}, "Thursday":{"Breakfast": 0, "Lunch": 0, "Dinner": 0}, "Friday":{"Breakfast": 265, "Lunch": 0, "Dinner": 0}, "Saturday":{"Breakfast": 0, "Lunch": 0, "Dinner": 0}, "Sunday":{"Breakfast": 0, "Lunch": 0, "Dinner": 620}} 

Ma non ho potuto get il risultato che vorrei. Uno dei tentativi che ho fatto che non funziona è questo:

 import csv import itertools headings = (d.keys()[0] for d in my_dict) entries = (sorted(my_dict[index][col].items()) for index, col in enumerate(headings)) with open('output.csv', 'wb') as f_output: csv_output = csv.writer(f_output) csv_output.writerow(['items'] + headings) for cols in itertools.iziplogest(*entries, fillvalue=['<n/a>']*len(entries[0])): csv_output.writerow([cols[0][0]]+[col[1] for col in cols]) 

Sono nuovo alla programmazione e non sono ancora troppo abituato all'orientamento dell'object, quindi vorrei trovare una risposta che sia il più semplice ansible. Grazie!

Provate ad usare panda per questo!

Installare il pacchetto se non lo si dispone già.

 pip install pandas 

Quindi fare il seguente codice:

 import pandas as pd df = pd.DataFrame.from_dict(data=my_dict) df=df[['Monday','Tuesday', 'Wednesday','Thursday','Friday','Saturday','Sunday']] df.to_csv('output.csv',index=False) 

Dovresti get un csv come segue:

Monday Tuesday Wednesday Thursday Friday Saturday Sunday Breakfast 0 0 289 0 265 0 0 Dinner 201 0 0 0 0 0 620 Lunch 832 0 0 0 0 0 0

E questo è, dovresti avere un csv come ti serve!