По заданию я должен построить таблицу в формате csv по базе в Mongo и я справился с этим таким образом
f = open('grafinfopay.txt', 'w')
heh = list(db.events.aggregate(
[
{"$match": {"$and":[{"status": 'start'}, {"is_buyer": 1}]}},
{"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
{"$unwind": "$players"},
{"$group": {"_id": "$_id", "Count": {"$sum": 1}}}
]))
znacheniya = list()
fu = {}
a = [0]*400
output_file = open("donators.csv", "wb")
wrtr = csv.writer(output_file)
for i in heh:
lol = i.values()
value = lol.pop(0)
key = lol.pop(0)
fu = {key : value}
num = re.findall(r'\d+', str(fu))
poz = int(num.pop(0))
if poz < 1000:
a[poz - 1] = fu
wrtr.writerow([key, value])
f.close()
output_file.close()
Но csv файл выходит несортированный, но мне к сожалению надо получить как раз таки сортированный файл. И я не могу понять как его отсортировать.
Вот пример данных (это "а" и оно уже отсортировано, но они могут быть вперемешку):
a = [{u'Level 1': 46404}, {u'Level 2': 45606}, {u'Level 3': 45335}]
P.S.
Этот код выполняет ещё одну функцию так что некоторые строчки могут к вопросу не относится.
Обновление:
Вот пример входных данных
heh = [{u'Count': 361, u'_id': u'Level 302'}, {u'Count': 315, u'_id': u'Level 299'}, {u'Count': 353, u'_id': u'Level 311'}]