0
我在我的数据库中有一个名为“item”的对象,我想写一些python,它将从每组student_id中选择最低分数....我是一个总数蟒蛇noob ...我怎么做到这一点?有PYTHON在每个组中选择最低分
运行我的代码一些麻烦......我可以得到一些健全检查完成:
{u'student_id': 197, u'_id': ObjectId('50906d7fa3c412bb040eb88d'), u'type': u'homework', u'score': 10.90872422518918}
{u'student_id': 197, u'_id': ObjectId('50906d7fa3c412bb040eb88e'), u'type': u'homework', u'score': 88.3871242475841}
{u'student_id': 198, u'_id': ObjectId('50906d7fa3c412bb040eb892'), u'type': u'homework', u'score': 17.46279901047208}
{u'student_id': 198, u'_id': ObjectId('50906d7fa3c412bb040eb891'), u'type': u'homework', u'score': 76.18366499496366}
{u'student_id': 199, u'_id': ObjectId('50906d7fa3c412bb040eb895'), u'type': u'homework', u'score': 49.34223066136407}
{u'student_id': 199, u'_id': ObjectId('50906d7fa3c412bb040eb896'), u'type': u'homework', u'score': 58.09608083191365}
更新?我得到这个错误...
NameError: name 'getResultFromDatabase' is not defined
谢谢你的麻烦....这里是我的代码...
import pymongo
from itertools import groupby
from pymongo import Connection
data = getResultFromDatabase()
connection = Connection('localhost', 27017)
db = connection.students
item = db.grades.find({'type' : 'homework'}).sort([('student_id',pymongo.ASCENDING),('score',pymongo.ASCENDING)])
for id, items in groupby(data, lambda s: s['student_id']):
lowest_score = min(i['score'] for i in items)
print lowest_score
+1。使用'groupby'时,OP应该注意的唯一事情是'data'必须由'student_id'排序(尽管如果示例具有代表性,它们可能已经是这样)。 – DSM
noob在这里报告。得到这个错误:data = getResultFromDatabase() NameError:名称'getResultFromDatabase'没有定义 – thefonso
我试图pip安装itertools ...啊哎呀...没有工作 – thefonso