【发布时间】:2021-08-19 05:38:12
【问题描述】:
大家早上/下午/晚上好! 我正在尝试编写一个具有航空功能的不和谐机器人。其中之一是一个命令,它通过确定机场的气象报告来回答用户。我正在使用 API 来实现这一点。
假设我有一个用户输入的机场列表:
airports = ["A","B","C"]
我有一个函数可以拆分列表并根据 API 检索信息。效果很好。
麻烦来了。假设列出的任何机场都不存在/拼写错误/等等。 我怎样才能让代码忽略它并与其他机场保持一致?
这是我正在处理的代码:
for i in aeropuertos:
finalizado = MetarBot.metarbot.Taf(i)
await ctx.send(finalizado)
time.sleep(0.5)
它处理机场“A”,一切都很好。输出数据。当谈到机场“B”时,它会停在那里。有什么方法可以忽略(或弹出“检查您的拼写!”)并继续列表中的下一个?
已尝试使用 try and except,但没有奏效。还尝试了 contextlib.suppress
EDIT1:API 文档:https://avwx.docs.apiary.io/#introduction/authentication
【问题讨论】:
-
我的感觉是它可能不会因为异常而停止,但可能是卡住了。具体停在哪条线?
-
你能提供你正在使用的 api 的文档吗? API 不应将此视为错误,而是应返回某种“未找到项目”响应。检查它是否有超时参数。
-
@luizbarcelos 嗨!它是这样工作的:您输入一个 4 个字母的代码。然后它转到 API 并检索字典。从那里我提取一个特定的键[“raw”]。当代码无法检索到那个未知/拼写错误的机场的密钥时,代码就会停止。我刚刚编辑了添加 API 参考的帖子,谢谢您的回答!
-
@DvirH 刚刚用 API 文档编辑了帖子,谢谢!
标签: python exception try-catch