Python Wolfram Alpha API:StopIteration

Python Wolfram Alpha API: StopIteration

如何避免停止迭代错误?我不知道代码可能正在迭代的任何函数或循环。

import wolframalpha

client = wolframalpha.Client('My Key is Goes Here')
res = client.query('pi')

print next(res.results).text

我从来没有用过wolframalpha,但看起来应该是

for result in res.results:
    print result.text

编辑: 我现在已经安装了 wolframalpha,我发现该查询(以及我尝试过的其他查询)在 res.results 中没有结果.相反,他们有 pods。您可以遍历 pods 作为 in the docs:

for pod in res.pods:
    print '{p.title}: {p.text}'.format(p=pod)

您对 next 的使用导致了 StopIteration 错误。 Python 的 API for Wolframalpha 正在为您提供一个迭代器来循环结果(next 只得到 "next" 结果而不是所有结果)

您可以使用 try/except 子句捕获错误:

try:
    print next(res.results).text
except StopIteration:
    print "No results"