你好,我是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`
lang=languages.ENGLISH, # default `ENGLISH`
units=units.AUTO, # default `auto`
exclude=[weather.MINUTELY, weather.ALERTS] # default `[]`
)
我不知道如何解决这个问题,我使用的是Python 3。
谢谢
3条答案
按热度按时间2skhul331#
我想这个答案对那些和我搜索相同问题的人会很有用。要在同步上下文中使用异步函数,可以使用事件循环。你可以为了教育的目的从头开始写。你可以从这个答案https://stackoverflow.com/a/51116910/14154287开始,继续接受大卫·比兹利的教育。
但是asyncio的开发人员已经为你做了这些。
yks3o0rb2#
await
关键字只能在异步函数和方法中使用。您可以阅读更多关于异步代码的内容以了解原因。解决方案是使用
darksky = DarkSky(API_KEY)
而不是darksky = DarkSkyAsync(API_KEY)
,而不需要任何关于您想要实现什么以及如何实现的细节。l3zydbqr3#
在较新版本的python(v3.7+)中,您可以通过使用
asyncio.run
在sync上下文中调用async函数: