Python 根据值将日期分组到列表中
我有一个json对象,我正试图将该项组合在一起Python 根据值将日期分组到列表中,python,dictionary,group-by,Python,Dictionary,Group By,我有一个json对象,我正试图将该项组合在一起 sorted_stack = sorted(stack, key=itemgetter('Date')) for key, group in itertools.groupby(sorted_stack, key=lambda x:x['Date']): print(key) print(list(group)) 此代码返回按日期分组的值作为键,然后返回一个团队和日期列表,如下所示 2020-03-08
sorted_stack = sorted(stack, key=itemgetter('Date'))
for key, group in itertools.groupby(sorted_stack, key=lambda x:x['Date']):
print(key)
print(list(group))
此代码返回按日期分组的值作为键,然后返回一个团队和日期列表,如下所示
2020-03-08
[{'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}]
2020-03-08 : [{'Team': 'ORL', 'Date': ['2020-03-08', '2020-03-08', '2020-03-08']}, {'Team': 'PHO', 'Date': ['2020-03-08','2020-03-08', '2020-03-08', '2020-03-08']}, {'Team': 'MIN', 'Date': ['2020-03-08','2020-03-08', '2020-03-08']}
但是,我需要它像这样返回和键值对
2020-03-08
[{'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'ORL', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'PHO', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}, {'Team': 'MIN', 'Date': '2020-03-08'}]
2020-03-08 : [{'Team': 'ORL', 'Date': ['2020-03-08', '2020-03-08', '2020-03-08']}, {'Team': 'PHO', 'Date': ['2020-03-08','2020-03-08', '2020-03-08', '2020-03-08']}, {'Team': 'MIN', 'Date': ['2020-03-08','2020-03-08', '2020-03-08']}
如果特定团队的所有日期都作为键
Date
的值在列表中,这是一种使用dict.setdefault
Ex:
for key, group in itertools.groupby(sorted_stack, key=lambda x:x['Date']):
print(key)
temp = {}
for i in group:
temp.setdefault(i['Team'], []).append(i['Date'])
print(temp)
#OR
print([{"Team": k, "Date": v} for k, v in temp.items()])