Python 在我的alexa技能中,我不断收到带有语音输出的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子句还需要定义速度输出,或者需要

我开始收到这个错误,但它在以前工作过,所以我不确定发生了什么变化

文件“/var/task/lambda_function.py”,第126行,处于获取状态 语音输出+='在'+电梯['线路]+'在车站'+ 电梯['station']+\UnboundLocalError:局部变量 分配前引用的“语音输出”


您尚未定义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))