使用JSON Payload的Python-字符串索引必须为整数

时间:2019-07-09 09:22:07

标签: python json lambda

嗨,我在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"}

1 个答案:

答案 0 :(得分:1)

您有一个event变量,可以使用dumps将该变量转换为字符串,然后使用loads将其转换回JSON,然后尝试访问该JSON的属性。正确吗?

除了双重转换,request_json['body']是一个字符串,如果您知道它是JSON,则可以像以前一样加载它:

req = json.loads(request_json['body'])