如何从Lambda事件中提取三级参数pgeextreftype?已尝试方法均返回空值
正确提取Lambda事件中三级参数
pgeextreftype的方法 问题根源
你的代码失败有两个核心原因:
- Lambda事件中的
body是JSON字符串,不是可直接操作的Python字典,无法直接用.get()方法取值。 workorder是一个**列表(数组)**类型,不是单个字典,必须先获取列表中的元素,再提取目标字段。
正确实现代码
import json def lambda_handler(event, context): # 1. 将event中的body字符串解析为Python字典 event_body = json.loads(event['body']) # 2. 从workorder列表中取出第一个元素(根据日志,列表内只有一个字典) workorder_item = event_body['workorder'][0] # 3. 提取目标参数pgeextreftype pgeextreftype = workorder_item.get('pgeextreftype') # 验证结果 print(pgeextreftype) # 输出: PWRPREL return pgeextreftype
对之前错误代码的说明
event_body.get('pgeextreftype'):错误,因为pgeextreftype不在顶层字典中,而是嵌套在workorder列表的子字典里。event_body_workorder.get('pgeextreftype'):错误,若event_body_workorder是直接取event_body['workorder'],那它是列表,列表没有.get()方法,必须先取列表元素。event_body.get('workorder.pgeextreftype'):错误,Python字典不支持用点分隔的路径直接取值,必须逐层访问。
内容的提问来源于stack exchange,提问作者Deepesh Dubey
相关产品推荐
相关产品推荐

