[Tutor] IndexError: list index out of range
eryksun
eryksun at gmail.com
Sat Nov 30 04:52:10 CET 2013
On Fri, Nov 29, 2013 at 8:17 PM, richard kappler <richkappler at gmail.com> wrote:
>
> args = shlex.split(cmd)
> output,error = subprocess.Popen(args,stdout = subprocess.PIPE, stderr=
> subprocess.PIPE).communicate()
Output to stderr doesn't necessarily mean a command failed. The
process returncode is what you need to inspect. Use
subprocess.check_output. It raises a subprocess.CalledProcessError for
a non-zero return code.
> if not error:
> a = eval(output)
Please post plain text to the list. Automatic conversion from rich to
plain text isn't Python friendly.
Don't use eval like this. Google isn't sending Python code in response
to a web query. They're sending JSON data:
import json
output = ('{"status":0,"id":"","hypotheses":'
'[{"utterance":"Python","confidence":0.58060002}]}')
a = json.loads(output)
>>> a['hypotheses'][0]
{u'confidence': 0.58060002, u'utterance': u'Python'}
>>> a['hypotheses'][0]['utterance']
u'Python'
Remember to check the status code. I found a short list, but nothing official:
0 - correct
4 - missing audio file
5 - incorrect audio file
When the speech recognition fails to form a hypothesis, print "Ozzy,
is that you again?" ;)
More information about the Tutor
mailing list