@guruvan_damm

Как подсчитать значения списка по ключу?

Всем привет! Выгружаю с помощью api определенный список all_tickets, в котором есть связка ключ:значение.
Нужно подсчитать сколько раз встречается ключ assignee_id и отсортировать по убыванию.
Пример:
186485 - 220 раз
184002 - 124 раза

Вот так выгружаю список:

def take_all_chats():
    token = "blablabla"
    offset = 0
    all_tickets = []

    while offset < 20:
        responce = requests.get('blablabla.com',
                                params={
                                    'api_token': token,
                                    'updated_before': '2021-07-06 23:59',
                                    'updated_after': '2021-06-06 23:59',
                                    'fstatus': '3',
                                    'fchannel': '25222',
                                    'offset': offset
                                })
        data = responce.json()
        offset += 1
        all_tickets.extend(data)
        time.sleep(1)

    print(counts)


take_all_chats()


Пробовал выгрузить кол-во так, но не получилось:
values_per_key = {}
    for d in all_tickets:
        for k, v in d.items():
            values_per_key.setdefault('assignee_id', set()).add(v)
    counts = {k: len(v) for k, v in values_per_key.items()}

    print(counts)
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
С телефона, но должно работать)
values_per_key = {}
for d in all_tickets:
    for k, v in d.items():
        if k == "assigned_id":
            if not values_per_key.get(v):
                values_per_key[v] = 1
            else:
                values_per_key[v] += 1    
print(values_per_key )
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
aRegius
@aRegius
Python Enthusiast
Counter(data[key] for data in all_tickets if data.get(key, None))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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