Задать вопрос
@novicheck

Как записать отсортированные данные в csv файл?

По заданию я должен построить таблицу в формате 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'}]
  • Вопрос задан
  • 413 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы