[英]Return a list from asyncio function
I have the following code from below. 我从下面有以下代码。 I know that probably is wrong somewhere, but how it must be to can return the list telegramlist after it is run? 我知道在某处可能是错误的,但是在运行后可以返回列表电报列表必须怎么办? Just want to can access list items globally? 只想可以全局访问列表项?
telegramlist = []
telegramchannellist = ['TelethonChat-anti-kyle']
async def telegram_method():
api_id = '*'
api_hash = '*'
client = TelegramClient('trendingsesion', api_id, api_hash)
client.start()
telegramdict = {}
for ch in telegramchannellist:
channel_username = ch
channel_entity = client.get_entity(channel_username)
posts = client(GetHistoryRequest(
peer=channel_entity,
limit=1,
offset_date=None,
offset_id=0,
max_id=0,
min_id=0,
add_offset=0,
hash=0))
telegramdict[ch] = posts.messages # here if i write .messages shows a weird error, he want to be only posts
telegramlist = list(telegramdict.values())
return telegramlist
shuffle(telegramchannellist)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
telegramlistt = loop.run_until_complete(asyncio.gather(telegram_method()))
loop.close()
You are missing an await
in your main
coroutine. 您在main
协程中缺少await
。 Corrected, it would look like this: 已更正,它看起来像这样:
async def main():
telegramlist = await telegram_method()
return telegramlist
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.