首页 > python 字典转换,并排序

python 字典转换,并排序

d = [
    {'id':1,'title':'1111','cate':'A','cateid':"1",'rank':"2"},
    {'id':2,'title':'2222','cate':'A','cateid':"1",'rank':"4"},
    {'id':3,'title':'3333','cate':'A','cateid':"1",'rank':"1"},
    {'id':4,'title':'4444','cate':'B','cateid':"2",'rank':"3"},
]

转换成d2,并根据cateid排序,结果要如下

d2 = [
    {'article_list':[{'id':1,'title':'1111'},{'id':2,'title':'2222'},{'id':3,'title':'3333'}],
    'cateid':"1",
    'cate':'A',
    },

    {'article_list':[{'id':4,'title':'4444'}],
    'cateid':"2",
    'cate':'B',
    },
]

from itertools import groupby
key = lambda x: (x['cateid'], x['cate'])
d2 = [{'cateid': k[0], 'cate': k[1],
       'article_list': [{'id': x['id'], 'title': x['title']} for x in g]}
      for k, g in groupby(sorted(d, key=key), key=key)]
【热门文章】
【热门文章】