Gryandr
@Gryandr

Как вывести итерированый словарь в сообщении в телеграме?

Функция print выводит итерированый отсортированый словарь, но в сообщении выводит только последний элемент словаря. Как в сообщении получить полный отсортированый словарь?
today = {"Фаза 2": 20, "Фаза 1": 10, "Фаза 3": 30, "Фаза 4": 40}

@dp.message_handler()
async def phase():
    for k in sorted(today):
        out = (f"{k}:{today[k]}")
        print(str(out))
await bot.send_message(message.from_used.id, str(out))

OUT
Фаза 1: 10
Фаза 2: 20
Фаза 3: 30
Фаза 4: 40

MSG
Фаза 4: 40
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Выводится только последний потому-что out пересоздается каждою итерацию а отправка сообщения происходит после завершения цикла. Варианта, глобально, два:
  • отправлять сообщение "построчно", каждую итерацию.
  • Переписать код так, чтобы значение out дополнялось а не пересоздавалось.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы