python异步协程爬虫报错:【TypeError: object int can‘t be used in ‘await‘ expression】探讨
近日,通过异步协程爬虫抓取rar压缩包文件时,学习运用异步协程来提高效率。但发生如下问题:TypeError: object int can't be used in 'await' expression
研究了好久,发现是在持久化保存时,不能运用整数作为await的参数。
这个错误的原因可能是在async函数中使用了一个整数类型的变量作为await的参数。await只能用于返回协程对象的异步函数,无法使用在普通的同步操作上。
要解决这个问题,需要确保await的参数是一个异步函数的返回值。如果我们只是想等待一个时间段后再执行下一个操作,可以使用asyncio.sleep()函数作为协程对象来等待一定的时间。
例如:
import asyncioasync 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()函数用来运行异步函数。
问题关键点:
所以,只要把await 去掉,就可以正常运行了!^_^
以上只是我浅薄的理解,不知道对不对!
但是对于磁盘的IO操作也是提高运行效率的关键点吧,为什么不能使用异步呢?好让人郁闷( ˇˍˇ )
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341