[英]SyntaxError: 'await' outside function
您好,我是 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。
謝謝
我認為這個答案對於和我搜索相同問題的人很有用。 要在同步上下文中使用異步函數,您可以使用事件循環。 您可以出於教育目的從頭開始編寫它。 您可以從這個答案開始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()
await
關鍵字只能在異步函數和方法中使用。 您可以閱讀有關異步代碼的更多信息以了解原因。
解決方案是使用darksky = DarkSky(API_KEY)
而不是darksky = DarkSkyAsync(API_KEY)
,而沒有任何關於您想要完成什么以及如何完成的細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.