37,721
社区成员
发帖
与我相关
我的任务
分享
show_data = (('2019', '01', '1,601.0'), ('2019', '02', '1,397.0'), ('2019', '03', '2,219.0'), ('2019', '04', '3,229.5'),
('2020', '01', '7,060.0'), ('2020', '02', '3,500.5'), ('2020', '03', '5,031.0'), ('2020', '04', '3,623.0'))
show_data_list = [
{'year': '2019',
'sales': [{'month': '01', 'amount': '1,601.0'}, {'month': '02', 'amount': '1,397.0'},
{'month': '03', 'amount': '2,219.0'}, {'month': '04', 'amount': '3,229.5'}]
},
{'year': '2020',
'sales': [{'month': '01', 'amount': '7,060.0'}, {'month': '02', 'amount': '3,500.5'},
{'month': '03', 'amount': '5,031.0'}, {'month': '04', 'amount': '3,623.0'}]
}
]
import more_itertools as mi
show_data = (('2019', '01', '1,601.0'), ('2019', '02', '1,397.0'), ('2019', '03', '2,219.0'), ('2019', '04', '3,229.5'),
('2020', '01', '7,060.0'), ('2020', '02', '3,500.5'), ('2020', '03', '5,031.0'), ('2020', '04', '3,623.0'))
keyfun = lambda x: x[0]
valfun = lambda x: (x[1], x[2])
re = mi.groupby_transform(show_data, keyfun, valfun)
result = [{'year': i,'sales': [{'month': k[0],'amount': k[1],} for k in j]} for i, j in re]
print(result)
show_data = (('2019', '01', '1,601.0'), ('2019', '02', '1,397.0'), ('2019', '03', '2,219.0'), ('2019', '04', '3,229.5'),
('2020', '01', '7,060.0'), ('2020', '02', '3,500.5'), ('2020', '03', '5,031.0'), ('2020', '04', '3,623.0'))
show_data_list = []
show_data_dict = {}
for data in show_data:
if data[0] in show_data_dict:
data_temp = show_data_dict[data[0]]
data_temp[data[1]] = data[2]
else:
show_data_dict[data[0]] = {data[1]:data[2]}
for data in show_data_dict:
data_list_temp = []
for data1 in show_data_dict[data]:
data_list_temp.append({'month': data1, 'amount': show_data_dict[data][data1]})
show_data_list.append({'year': data,'sales': data_list_temp})
for data in show_data_list:
print(data)