嗨,我在lambda中反序列化json时遇到了一些问题,从网上看似乎问题是我有一个字符串,并试图获取一个键值,就好像这是一个字典,但仍不确定正确的解决方案。
这是给出错误的代码
def handler(event, context):
try:
json_str = json.dumps(event)
request_json = json.loads(json_str)
req = request_json['body']
logger.info("req : " + str(req))
if req:
key = req['executionArn']
此行给出了问题-
key = req['executionArn']
记录器行给了我
req : {"executionArn":"123"}
我在lambda上执行发布请求,并将其用作通过api网关的有效负载
{"executionArn":"123"}
答案 0 :(得分:1)
您有一个event
变量,可以使用dumps
将该变量转换为字符串,然后使用loads
将其转换回JSON,然后尝试访问该JSON的属性。正确吗?
除了双重转换,request_json['body']
是一个字符串,如果您知道它是JSON,则可以像以前一样加载它:
req = json.loads(request_json['body'])