创builddynamic工作表variables

我有一个包含以下数据的列表:

month = [ "Jan", "Feb", "Mar", "Apr" ] 

每个月的数据都以JSON格式存储,如下所示:

 [{"Master" : [ { "month" : "Jan", "Expense" : "50", "Income" : "100", "Emp" : "1" }, { "month" : "Jan", "Expense" : "500", "Income" : "1000", "Emp" : "2" }, { "month" : "Feb", "Expense" : "50", "Income" : "100", "Emp" : "1" }, { "month" : "Feb", "Expense" : "500", "Income" : "1000", "Emp" : "2" }, { "month" : "Mar", "Expense" : "50", "Income" : "100", "Emp" : "2" }, { "month" : "Apr", "Expense" : "50", "Income" : "100", "Emp" : "1" } ] }] 

根据month的价值,我需要使用for loop将每个月份数据的所有内容写入单独的名称为“Jan”,“Feb”,“Mar”,“Apr”等的for loop ,如下所示:

 for i in range(len(month)): worksheet[i] = workbook.add_worksheet(month[i]) 

列表month的内容可能会发生变化,因此需要dynamicvariables分配。

这可能吗?

以下应该做你正在寻找的东西。 您可以configuration需要哪些列和月份:

 import xlsxwriter import itertools data = [{"Master" : [ { "month" : "Jan", "Expense" : "50", "Income" : "100", "Emp" : "1" }, { "month" : "Jan", "Expense" : "500", "Income" : "1000", "Emp" : "2" }, { "month" : "Feb", "Expense" : "50", "Income" : "100", "Emp" : "1" }, { "month" : "Feb", "Expense" : "500", "Income" : "1000", "Emp" : "2" }, { "month" : "Mar", "Expense" : "50", "Income" : "100", "Emp" : "2" }, { "month" : "Apr", "Expense" : "50", "Income" : "100", "Emp" : "1" } ] }] workbook = xlsxwriter.Workbook('output.xlsx') # List of required months months = [ "Jan", "Feb", "Apr" ] # List of required columns and required order columns = ['month', 'Expense', 'Income', 'Emp'] for workbook_month in months: for data_month, g in itertools.groupby(data[0]['Master'], key=lambda x: x['month']): if workbook_month == data_month: worksheet = workbook.add_worksheet(workbook_month) worksheet.write_row(0, 0, columns) for row, entry in enumerate(g, start=1): worksheet.write_row(row, 0, [entry[col] for col in columns]) workbook.close() 

给你以下的输出,在这里我错过了Mar数据:

在这里输入图像说明