玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python有SQL中group by推导吗

现查询基于mongoengine的文档,其结构如下:

#课程分类
class Category(EmbeddedDocument):
    name=StringField()

#课程
class Course(Document):
    title=StringField()
    category=EmbeddedDocumentField(Category)

现假定有若干分类,及若干课程文档,有没有简洁的办法查询出去重的课程分类名称,及该类课程的总数?比如:

[
    ('课程类型1',25),
    ('课程类型2',10),
    ('课程类型3',20),
    ...
]

好吧,自己搞定了

from operator import itemgetter
from itertools import groupby

lst = [dict(category=c.category.name, title=c.title) for c in Course.objects]
lst.sort(key=itemgetter('category'))
categories = [(category, len(list(items))) for category, items in groupby(lst, key=itemgetter('category'))]

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19325.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月22日 - 08时06分09秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules