如何避免停止迭代错误?我不知道代码可能正在迭代的任何函数或循环。
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
.您可以像文档中一样循环访问 Pod:
for pod in res.pods:
print '{p.title}: {p.text}'.format(p=pod)
你对 next 的使用是创建 StopIteration 错误的原因。Python 的 Wolframalpha API 提供了一个迭代器,供你循环使用(next
只得到"下一个"结果而不是所有结果)
您可以使用 try/except 子句捕获错误:
try:
print next(res.results).text
except StopIteration:
print "No results"