Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Wolfram Alpha API:StopIteration_Python_Api_Wolframalpha_Stopiteration - Fatal编程技术网

Python Wolfram Alpha API: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

如何避免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
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"