您好,我是 python 新手,正在尝试使用 Detrous 制作的 Dark Sky python API。当我运行演示代码时,出现错误:forecast = await darksky.get_forecast( ^SyntaxError: 'await' outside function此错误源于:forecast = await darksky.get_forecast( latitude, longitude, extend=False, # default `False` .ENGLISH, # default `ENGLISH` units=units.AUTO, # default `auto` exclude=[weather.MINUTELY, weather.ALERTS] # default `[]`)我不太确定如何解决这个问题并且正在使用 python 3。谢谢
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
我认为这个答案对于和我搜索相同问题的人很有用。要在同步上下文中使用异步函数,您可以使用事件循环。您可以出于教育目的从头开始编写它。您可以从这个答案开始 https://stackoverflow.com/a/51116910/14154287 并继续阅读 David Beazley 的书籍。
但是 asyncio 的开发人员已经为您做到了这一点。
import asyncio
loop = asyncio.get_event_loop()
forecast = loop.run_until_complete(darksky.get_forecast(...<here place arguments>...))
loop.close()
哔哔one
TA贡献1854条经验 获得超8个赞
该await
关键字只能在异步函数和方法中使用。您可以阅读有关异步代码的更多信息以了解原因。
解决方案是使用darksky = DarkSky(API_KEY)
而不是darksky = DarkSkyAsync(API_KEY)
.
添加回答
举报
0/150
提交
取消