亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python AWS Lambda 事件 JSON

Python AWS Lambda 事件 JSON

汪汪一只貓 2023-10-11 21:36:34
我正在嘗試解析 AWS Lambda 的事件數據,我已將其連接到 SQS,并使用 SQS 發送 JSON 格式。這是我的 AWS Lambda 函數import jsondef lambda_handler(event, context):    # print(event)    # print(event['Records'][0])    x = event['Records'][0]['body']    print(x)    print(type(x))以下是事件數據{   "Records":[      {         "messageId":"916f5e95-b2f6-4148-9c62-2ac8e764f06c",         "receiptHandle":"AQEBmLuoGWtLtFFgvyCFdSPMJh2HKgHOIPWNUq22EOwCzGT8iILZm97CE6j4J6oR71ZpDr3sgxQcJyVZ+dmmvGl+fFftT9GCJqZYrjMGsR2Q6WsMd8ciI8bTtDXyvsk8ektd7UGfh4gxIZoFp7WUKVRcMEeBkubKd8T4/Io81D0l/AK7MxcEfCj40vWEsex1kkGmMRlBtdSeGyy7fJgUq5CFAYWciiWtbSit8S0Y38xZPmsIFhoxP0egQRoJcW4aUgMi469Gj5+khizetybtgC8vux5NCg/IejxcCueXkQ7LKVF8kfRdqRSUYB6DsOrGgfmZpK4wpXIarByNz0R2p7J88meYpj2IVULv/emXsSYaKG4rXnpbH4J9ijbLWckYLAd7wPDzCYri1ZSTgAz0kchsEw==",         "body":"{\n\"name\": \"aniket\",\n\"tag\": \"hello\"\n}",         "attributes":{            "ApproximateReceiveCount":"1",            "SentTimestamp":"1602046897707",            "SenderId":"AIDAR3BXDV4FCWXL56NUU",            "ApproximateFirstReceiveTimestamp":"1602046897712"         },         "messageAttributes":{                     },         "md5OfBody":"98da683a47692b39c1d43bd4fa21ed89",         "eventSource":"aws:sqs",         "eventSourceARN":"arn:aws:sqs:ap-south-1:126817120010:documentation",         "awsRegion":"ap-south-1"      }   ]}    我正在嘗試訪問數據正文。這就是我得到的"{\n\"name\": \"aniket\",\n\"tag\": \"hello\"\n}"它的類型是字符串。我需要做什么才能將其轉換為正確的 JSON 格式?我還嘗試了以下方法:import jsondef lambda_handler(event, context):    data = json.dumps(event['Records'][0]['body'])    print(data)這是輸出"{\n\"name\": \"aniket\",\n\"tag\": \"hello\"\n}"但這次的類型是 JSON。預期的格式是{"name": "aniket","tag": "hello"}
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

你必須使用json.loadsnot json.dumps。


嘗試這個:


import json


event = {

   "Records":[

      {

         "messageId":"916f5e95-b2f6-4148-9c62-2ac8e764f06c",

         "receiptHandle":"AQEBmLuoGWtLtFFgvyCFdSPMJh2HKgHOIPWNUq22EOwCzGT8iILZm97CE6j4J6oR71ZpDr3sgxQcJyVZ+dmmvGl+fFftT9GCJqZYrjMGsR2Q6WsMd8ciI8bTtDXyvsk8ektd7UGfh4gxIZoFp7WUKVRcMEeBkubKd8T4/Io81D0l/AK7MxcEfCj40vWEsex1kkGmMRlBtdSeGyy7fJgUq5CFAYWciiWtbSit8S0Y38xZPmsIFhoxP0egQRoJcW4aUgMi469Gj5+khizetybtgC8vux5NCg/IejxcCueXkQ7LKVF8kfRdqRSUYB6DsOrGgfmZpK4wpXIarByNz0R2p7J88meYpj2IVULv/emXsSYaKG4rXnpbH4J9ijbLWckYLAd7wPDzCYri1ZSTgAz0kchsEw==",

         "body":"{\n\"name\": \"aniket\",\n\"tag\": \"hello\"\n}",

         "attributes":{

            "ApproximateReceiveCount":"1",

            "SentTimestamp":"1602046897707",

            "SenderId":"AIDAR3BXDV4FCWXL56NUU",

            "ApproximateFirstReceiveTimestamp":"1602046897712"

         },

         "messageAttributes":{


         },

         "md5OfBody":"98da683a47692b39c1d43bd4fa21ed89",

         "eventSource":"aws:sqs",

         "eventSourceARN":"arn:aws:sqs:ap-south-1:126817120010:documentation",

         "awsRegion":"ap-south-1"

      }

   ]

}


parsed = json.loads(event['Records'][0]['body'])

print(json.dumps(parsed, indent=4, sort_keys=True))

輸出:


{

    "name": "aniket",

    "tag": "hello"

}


查看完整回答
反對 回復 2023-10-11
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

嘗試使用 json.loads(string) 反序列化 json。

另外,我認為您不需要指定索引 [0],因為“body”是一個對象而不是數組。


查看完整回答
反對 回復 2023-10-11
  • 2 回答
  • 0 關注
  • 90 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號