Нужна отправка сообщения ботом. Значения из словаря в одно сообщение

Ситуация следующая: есть бот, проводящий некий опрос пользователя. По завершению опроса отправляет готовый результат админу чата. На данный момент код выглядит следующим образом:

await bot.send_message(id, f'Госпожа, у тебя новая запись:\n{' '.join(c for c in data.values())}')
await. state.finish()

Сейчас всё это выглядит следующим образом: введите сюда описание изображения

Нужно чтобы каждое новое значение выводилось с новой строки. Всё что пока пришло в голову, это прогнать через for, без генератора. Но в таком случае каждое значение будет приходить отдельным сообщением.

Что я упустил? Есть идеи по поводу реализации данной идеи?

Нужен вот такой результат введите сюда описание изображения


Ответы (1 шт):

Автор решения: yura mayer

Благодаря методу str.join() происходит последовательная конкатенация строк: значения str и элементов итерируемого объекта.

В вашем случае последовательно объединяются ' ' и элементы data.values().

Для желаемого результата добавьте в объект str сепаратор '\n'. Во избежание ошибок, связанных с ограничением f-строк, сепаратор можно реализовать следующим образом:

separator = '\n'

print(
    f"Here is the text:\n{separator.join(i for i in iterated_object)}"
)
→ Ссылка