python异步协程爬虫报错:【TypeError: object int can‘t be used in ‘await‘ expression】探讨

近日,通过异步协程爬虫抓取rar压缩包文件时,学习运用异步协程来提高效率。但发生如下问题:TypeError: object int can't be used in 'await' expression

python异步协程爬虫报错:【TypeError: object int can‘t be used in ‘await‘ expression】探讨_第1张图片

研究了好久,发现是在持久化保存时,不能运用整数作为await的参数。 

这个错误的原因可能是在async函数中使用了一个整数类型的变量作为await的参数。await只能用于返回协程对象的异步函数,无法使用在普通的同步操作上。

要解决这个问题,需要确保await的参数是一个异步函数的返回值。如果我们只是想等待一个时间段后再执行下一个操作,可以使用asyncio.sleep()函数作为协程对象来等待一定的时间。

例如:

import asyncio

async def my_function():
    await asyncio.sleep(1)
    print('1 second has passed')

asyncio.run(my_function())

这个例子中,my_function()是一个异步函数,它会等待1秒钟后再执行后续的操作。await asyncio.sleep(1)是等待1秒钟的语句,它返回的是一个协程对象,可以用await来等待它执行完毕。最后,asyncio.run()函数用来运行异步函数。

问题关键点:

python异步协程爬虫报错:【TypeError: object int can‘t be used in ‘await‘ expression】探讨_第2张图片

 所以,只要把await 去掉,就可以正常运行了!^_^

以上只是我浅薄的理解,不知道对不对!

但是对于磁盘的IO操作也是提高运行效率的关键点吧,为什么不能使用异步呢?好让人郁闷( ˇˍˇ )

你可能感兴趣的:(爬虫,python)