我尝试了许多不同的方法来在 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
来自以下词典:
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}}
但是我还没有得到我想要的结果。我所做的尝试之一是无效的:
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])
我是编程新手,对面向对象还不太熟悉,所以我想找到一个尽可能直接的答案。谢谢!
最佳答案
尝试使用 pandas 来实现此目的!
如果您还没有该软件包,请安装它。
pip install pandas
然后执行以下代码:
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)
您应该获得如下所示的 csv:
周一周二周三周四周五周六周日
早餐 0 0 289 0 265 0 0
晚餐 201 0 0 0 0 0 620
午餐 832 0 0 0 0 0 0
就是这样,您应该有一个您需要的 csv!
关于python - 嵌套字典到 csv excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910282/