Python с использованием JSON Payload - строковые индексы должны быть целыми числами - PullRequest
0 голосов
/ 09 июля 2019

Привет, у меня возникли некоторые проблемы с десериализацией 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"}  

Я выполняю почтовый запрос на лямбду, используя его как полезную нагрузку через шлюз API

{"executionArn":"123"}

1 Ответ

1 голос
/ 09 июля 2019

У вас есть переменная event, которую вы конвертируете в строку с dumps, затем вы конвертируете ее обратно в JSON с loads, затем вы пытаетесь получить доступ к свойству этого JSON. Это правильно?

Не считая двойного преобразования, request_json['body'] - это строка, и если вы знаете, что это JSON, вы можете загрузить ее так же, как и раньше:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...