大家好,我是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 `[]`
)
我不太确定如何解决这个问题,正在使用python3。
谢谢
发布于 2020-09-17 18:28:21
我认为这个答案对那些和我搜索相同问题的人会很有用。要在同步上下文中使用异步函数,可以使用事件循环。您可以出于教育目的从头开始编写它。你可以从这个答案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()
发布于 2019-10-19 08:02:41
await
关键字只能在异步函数和方法中使用。您可以阅读有关异步代码的更多内容来了解其中的原因。
解决方案是使用darksky = DarkSky(API_KEY)
而不是darksky = DarkSkyAsync(API_KEY)
,而不是详细说明您想要实现什么以及如何实现。
https://stackoverflow.com/questions/58461052
复制相似问题