微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Python和Asyncio运行异步功能

如何解决使用Python和Asyncio运行异步功能

我刚开始使用Python进入AsyncIO,我编写了一个非常简单的测试脚本来尝试了解其工作原理。

这是我尝试过的:

import cfscrape,asyncio,json,time

BU = cfscrape.create_scraper()

async def run(market):
    
    try:
        # DATA RETRIEVAL #
        URL = "https://api.binance.com/api/v1/klines?&symbol={0}&interval=4h&limit=130".format(market)

        ResultRaw = BU.get(URL,timeout=(10,15)).content
        Result = json.loads(ResultRaw)

        print(Result)

        time.sleep(2)

        print('Finished')
        
    except Exception as e:
        print(e)


async def main():
    Tickers = ['BTCUSDT','ETHBTC','ETHUSDT']

    for market in Tickers:
        await run(market)

asyncio.run(main())

此脚本采用三个参数,并向API端点执行简单查询,然后休眠并打印Finished输出将如下所示:

Result
Finished
Result 
Finished
Result 
Finished

我不明白的是以下内容:为什么没有输出

Result
Result
Result
Finished
Finished
Finished

脚本似乎一个一个地同步执行功能。相反,我想为每个执行创建一个协程,因此这三个请求应该已经同时(几乎)执行了。再说一次,我是异步Python的新手,所以我的意思可能是错误的,但是有人可以帮助我理解这一点吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。