使用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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...