微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS Lambda事件dict以非标准方式运行?

如何解决AWS Lambda事件dict以非标准方式运行?

考虑以下代码

def handle_lambda(event,context):
    multivalue_params = event.get('multiValuequerystringparameters',{})
    print(multivalue_params)
    print(type(multivalue_params).__name__)
    print(type(event).__name__)

输出

None
nonetype
dict

给什么?为什么字典认参数在事件字典上不起作用?是否有我所缺少的最佳实践?

解决方法

这是字典中非常常见的行为,当该键存在

>>> event = {'multiValueQueryStringParameters': None}
>>> multivalue_params = event.get('multiValueQueryStringParameters',{})
>>> print(multivalue_params)
None
>>> print(type(multivalue_params).__name__)
NoneType
>>> print(type(event).__name__)
dict

dict.get仅在键完全不存在时返回默认参数。您可能想要这样的东西:

# be prepared for both non-existent keys and None values:
multivalue_params = event.get('multiValueQueryStringParameters') or {}

# or expect the key to exist but to potentially be None:
multivalue_params = event['multiValueQueryStringParameters']
if multivalue_params is not None:
    # process only in this case

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。