【发布时间】:2017-09-25 23:38:33
【问题描述】:
我有一个这样的列表:
data = [
{'date':'2017-01-02', 'model': 'iphone5', 'feature':'feature1'},
{'date':'2017-01-02', 'model': 'iphone7', 'feature':'feature2'},
{'date':'2017-01-03', 'model': 'iphone6', 'feature':'feature2'},
{'date':'2017-01-03', 'model': 'iphone6', 'feature':'feature2'},
{'date':'2017-01-03', 'model': 'iphone7', 'feature':'feature3'},
{'date':'2017-01-10', 'model': 'iphone7', 'feature':'feature2'},
{'date':'2017-01-10', 'model': 'iphone7', 'feature':'feature1'},
]
我想实现这个:
[
{
'2017-01-02':[{'iphone5':['feature1']}, {'iphone7':['feature2']}]
},
{
'2017-01-03': [{'iphone6':['feature2']}, {'iphone7':['feature3']}]
},
{
'2017-01-10':[{'iphone7':['feature2', 'feature1']}]
}
]
我需要一种有效的方法,因为它可能包含大量数据。
我正在尝试这个:
data = sorted(data, key=itemgetter('date'))
date = itertools.groupby(data, key=itemgetter('date'))
但对于“日期”键的值,我一无所获。
稍后我将遍历此结构以构建 HTML。
【问题讨论】:
-
如果可以用,可以考虑
pandas。 -
带有 setdefault 的字典可能会有所帮助...
-
@Aikanaro stackoverflow.com/questions/20585920/…
标签: python python-2.7 grouping