不需要字典时的键错误

时间:2016-06-10 08:37:32

标签: python dictionary

我有一个功能可以在相机上设置快门并将浮动作为输入:

def changeShutter(value):
    global camera, shutter
    shutter['abs_value']+=value
    try:
        camera.set_property(**shutter)
    except:
        print "could not set shutter"

其中shutter是包含快门所需的所有属性的字典,而abs_value是其值需要更改然后设置的键。

我可以在一个用changeShutter(0.05)进行开发的jupyter笔记本中轻松调用它,它可以正常工作。

然后我在网页上创建了一个简单的html按钮,它向包含changeShutter函数的flask-socket服务器发送一条消息,并且根据按下的按钮和发送的消息,它解析0.05或-0.05,如下所示:

@socketio.on('shutter request', namespace='/test')
def changeShutter(message):
    request = message['data']
    print 'Shutter request received: %s' %request
    if str(request) == "shutter increase":
        changeShutter(0.05)
    elif str(request) == "shutter decrease":
        changeShutter(-0.05)

我清楚地收到了两个可能的选项中的一个并正确输入了正确的if语句(我已尝试使用额外的打印语句进行调试),但由于某种原因它会向我抛出key error: 0.05。< / p>

当函数不需要字典输入时,为什么会出现键错误?

1 个答案:

答案 0 :(得分:0)

如上面的评论所述,这是一个愚蠢的错误,我有2个不同的同名函数。