我有一个 Lambda 函数,旨在打开/关闭我的 Philip HUE 灯泡。我能够执行 python 脚本并在我的本地机器上运行(无错误)。但是,当我触发 Lambda 函数(使用 IoT 按钮)时,我收到以下错误消息。
[ERROR] AttributeError: 'list' object has no attribute 'get'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 21, in lambda_handler
bulbStatus = nested_get(data,["state","on"])
File "/var/task/lambda_function.py", line 16, in nestedDictLookup
internal_dict_value = internal_dict_value.get(k, None)
我认为该错误与以下代码行有关:
internal_dict_value = internal_dict_value.get(k, None)
但是,我几乎可以肯定“internal_dict_value”变量是字典,而不是列表。为了验证,我将以下代码行插入到我的脚本中:
internal_dict_value = input_dict
print (internal_dict_value)
这是我收到的输出:
{
"state": {
"on": true,
"bri": 254,
"hue": 8597,
"sat": 121,
"effect": "none",
"xy": [
0.4452,
0.4068
],
"ct": 343,
"alert": "select",
"colormode": "xy",
"mode": "homeautomation",
"reachable": false
},
"swupdate": {
"state": "noupdates",
"lastinstall": "2019-07-26T19:09:58"
},
"type": "Extended color light",
"name": "Couch Light",
"modelid": "LCT016",
"manufacturername": "Philips",
"productname": "Hue color lamp",
"capabilities": {
"certified": true,
"control": {
"mindimlevel": 1000,
"maxlumen": 800,
"colorgamuttype": "C",
"colorgamut": [
[
0.6915,
0.3083
],
[
0.1700,
0.7000
],
[
0.1532,
0.0475
]
],
"ct": {
"min": 153,
"max": 500
}
},
"streaming": {
"renderer": true,
"proxy": true
}
},
我脚本的最后一行调用了 lambda_handler() 函数。我被告知我不需要此行,因为我的 Lambda 在触发 Lambda 函数时调用该函数。但是我(相信)在我的本地机器上执行脚本时,我确实需要手动调用该函数。
繁花如伊
达令说
相关分类