为了账号安全,请及时绑定邮箱和手机立即绑定

SyntaxError:“等待”外部函数

SyntaxError:“等待”外部函数

翻阅古今 2022-06-28 11:02:25
您好,我是 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()


查看完整回答
反对 回复 2022-06-28
?
哔哔one

TA贡献1854条经验 获得超8个赞

await关键字只能在异步函数和方法中使用。您可以阅读有关异步代码的更多信息以了解原因。

解决方案是使用darksky = DarkSky(API_KEY)而不是darksky = DarkSkyAsync(API_KEY).


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 394 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信