TryAPL API APL 脚本无限加载而不返回任何错误消息[已关闭]

问题描述 投票:0回答:2

我正在按照 APL Wiki (https://aplwiki.com/wiki/TryAPL#API) 中的说明进行操作。这些示例看起来像是 C 系列语言或 Java。我正在使用Python。

下面的脚本不起作用:

import requests

print(requests.post("https://tryapl.org/Exec", json=[0,0,0,"2 + 2"])

它会无限加载,不会返回任何错误消息。

根据 APL Wiki,我不需要将 POST 请求中的前三个值设置为任何值即可使用如此简单的表达式。

python python-3.x rest
2个回答
0
投票

API返回JSON响应,需要解析JSON;您可以使用响应对象的

.json()
方法。此响应与您作为参数传递的 4 元素列表相同。返回值将位于该列表的最后一个元素中。

print(requests.post("https://tryapl.org/Exec", json=[0, 0, 0, "2 + 2"]).json()[3])

这个的输出是

['4']


0
投票

正如 LhasaDad 指出两次),这里的实际问题是缺少右括号(

)
),并且与 TryAPL API 完全无关。当括号未配对时,Python REPL 的简洁指示与您“缺乏编程经验”相结合,让您在打印 ... 而不是正常的 >>> 提示时,认为 REPL 正在等待响应
。然而,Python REPL 实际上使用 
...
 作为继续语句的提示(即关闭括号),而不是表示等待响应。您可以通过输入例如来看到这一点
1+(2-3
,这也会导致
...
,但显然没有等待回复。输入 
)
 继续:
>>> 1+(2-3
... )
0
>>>

可以说,APL REPL 提供的信息更多(尽管它也不允许行延续):

1+(2-3 SYNTAX ERROR: Unpaired parenthesis 1+(2-3 ∧


© www.soinside.com 2019 - 2024. All rights reserved.