Python Wolfram Alpha API:StopIteration
如何避免stopiteration错误?我不知道代码可能正在迭代的任何函数或循环Python Wolfram Alpha API:StopIteration,python,api,wolframalpha,stopiteration,Python,Api,Wolframalpha,Stopiteration,如何避免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 Ed
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
Edit:我现在安装了wolframalpha
,我发现该查询(以及我尝试过的其他查询)在res.results
中没有结果。相反,它们有pod
。您可以通过以下方式迭代POD:
您使用的是创建StopIteration错误的原因。
Python针对Wolframalpha的API为您提供了一个迭代器,用于循环结果(next
只获取“next”结果,而不是所有结果)
您可以使用try/except子句捕获错误:
try:
print next(res.results).text
except StopIteration:
print "No results"
但这并不能真正解决问题,因为那时什么都不会打印。如果之前打印,之后就会打印。调用next时出现StopIteration错误意味着没有
next
结果。我的解决方案阻止了此异常的传播(如果您更喜欢,可以在except
子句中打印“no results”)。
try:
print next(res.results).text
except StopIteration:
print "No results"