python json列表分组问题

YueZheng 发布于 2013/07/30 10:28
阅读 712
收藏 1

有这样一组数据:

[
  {
    id:12345,
    name:aaa
  }
  {
    id:23456,
    name:bbbb
  }
  ......
]

有没有什么简便的方法达到这样的目的:按照name的值进行分组,得到这样的结果:

[
  {
    id:12344,
    name: aaa
  }
  {
    id:12344,
    name: aaa
  }
]

[
  {
    id:12344,
    name: bbb
  }
  {
    id:12344,
    name: bbb
  }
]

加载中
1
李学明
李学明
from itertools import groupby

l = [
	{"id":1, "name":"aaa"},
	{"id":2, "name":"aaa"},
	{"id":3, "name":"bbb"},
	{"id":4, "name":"bbb"},
]

ret = list()

for _, group in groupby(l, lambda x: x.get('name')):
	ret.append(list(group))

print ret
YueZheng
YueZheng
高手,谢谢了
0
2J
2J
有没有js的写法呀
YueZheng
YueZheng
如果你嫌整个库太大,可以直接copy单个function的源码:http://documentcloud.github.io/underscore/docs/underscore.html#section-31
YueZheng
YueZheng
用underscore.js真的很简单。
0
YueZheng
YueZheng

引用来自“jijunjian”的答案

有没有js的写法呀
试试underscore.js,大概可以比较方便的解决这类问题。
0
YueZheng
YueZheng

引用来自“jijunjian”的答案

有没有js的写法呀
刚试了下,下面的代码就可以解决问题:
$(document).ready(function(){
  var l = [
	    {"id":1, "name":"aaa"},
	    {"id":2, "name":"aaa"},
	    {"id":3, "name":"bbb"},
	    {"id":4, "name":"bbb"},
	];
  var aList = _.groupBy(l, "name");
  console.log(aList);
});



返回顶部
顶部