@irdaxirdaxirdax

'coroutine' object is not iterable telethon?

Здравствуйте.
У меня есть код, который просто выводит имя людей/каналов в диалогах:
from telethon import TelegramClient
api_id = secret
api_hash = "secret"
client = TelegramClient("anon", api_id, api_hash)

client.start()

dlgs = client.get_dialogs()
for dlg in dlgs:
    print(dlg.title)

Но при запуске скрипта появляется ошибка:
Traceback (most recent call last):
  File "C:/Users/User/AppData/Local/Programs/Python/Python38-32/sxasac.py", line 9, in <module>
    for dlg in dlgs:
TypeError: 'coroutine' object is not iterable

Если просто вывести dlgs, то выводится это:
<coroutine object DialogMethods.get_dialogs at 0x041F22E8>

Как это можно исправить?
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Проще всего использовать синхронную библиотеку вместо telethon. Либо читать документацию asyncio, изучать, что асинхронные программы так не пишутся. Полезно ещё документацию самого telethon почитать, там много примеров.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bacon
Сначала учим основы python, потом переходим к изучению asyncio.
Ответ написан
dlgs = await client.get_dialogs()
Ответ написан
Ваш ответ на вопрос

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

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