Python 在我的alexa技能中,我不断收到带有语音输出的UnboundLocalError
我开始收到这个错误,但它在以前工作过,所以我不确定发生了什么变化 文件“/var/task/lambda_function.py”,第126行,处于获取状态 语音输出+='在'+电梯['线路]+'在车站'+ 电梯['station']+\UnboundLocalError:局部变量 分配前引用的“语音输出”Python 在我的alexa技能中,我不断收到带有语音输出的UnboundLocalError,python,python-2.7,alexa,alexa-skills-kit,Python,Python 2.7,Alexa,Alexa Skills Kit,我开始收到这个错误,但它在以前工作过,所以我不确定发生了什么变化 文件“/var/task/lambda_function.py”,第126行,处于获取状态 语音输出+='在'+电梯['线路]+'在车站'+ 电梯['station']+\UnboundLocalError:局部变量 分配前引用的“语音输出” 您尚未定义else案例中的语音输出是什么 如果septa\u电梯状态['meta']['CEPTS\u out']==0,则定义语音输出,否则不定义。else子句还需要定义速度输出,或者需要
您尚未定义else案例中的
语音输出是什么
如果septa\u电梯状态['meta']['CEPTS\u out']==0,则定义语音输出
,否则不定义。else子句还需要定义速度输出,或者需要在if/else块之前定义。请记住:a+=b
意味着a
就是它本来的样子,加上b
。因此,如果未定义a
,您将引发一个错误
据推测,这以前不会是一个错误,因为if case的计算结果为True,这意味着定义了speech\u output
,但现在if case不为True,因此不再定义speech\u output
。检查septa\u电梯状态['results']
的内容。如果它是空的(大概就是这样),for循环中的代码将不会执行,并且不会定义speech\u输出
def get_elevator_status():
session_attributes = {}
card_title = "Septa Elevator Status"
should_end_session = True
response = urllib2.urlopen(API_BASE_URL + "/elevator")
septa_elevator_status = json.load(response)
if septa_elevator_status['meta']['elevators_out'] == 0:
speech_output = 'All Elevators are currently operational'
else:
for elevators in septa_elevator_status['results']:
speech_output += 'On' + elevators['line'] + ' at station ' + elevators['station'] + \
' the ' + elevators['elevator'] + \
' elevator has ' + elevators['message'] + ' . '
return build_response(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))