使用要解析的正确键值字符串创建 JSON



我需要重现一个json,基本上是对我的代码运行一些测试,用于实时解析类似的json。

这是我的代码片段,事件是从 s3 PUT 通知生成的,即从 SNS 侦听器发布到 SQS -

event_body = json.loads(event["Records"][0]["body"])
event_body_msg = json.loads(event_body['Message'])
event_body_dict = event_body_msg['Records'][0]
s3_buck = event_body_dict['s3']['bucket']['name']

我希望我的 json 包含将由此代码解析的层次结构(因为我的测试是在 s3_buck 的值上编写的(。这是我想出的 json -

{ "记录":[ { "messageId": "a6665910-ab5a-46c3-baaf-6086c0c90511", "receiptHandle": "AQEBscBCR7DwSLqd5SXvEAX+8NUImpMPNmJ9hSD03HgWHhPnNZoIIqHkqI8lvwGMLjhX2R1ogPfo09z8EHcI7Nuh851vi4cIPBngMbIS6yw/rBtG115vSUyfN8i1yKM6Oz7iSJ2kIJCGmWRF2Rhsc8dH31zcyZKbVz/SzCOK8S/E9SdFHkPi2iNm4tr4PgrI+ZrvtYUicOuZQAJ8++hYo0rB43YCZKSZWMV1LG4iz2+OKVO08qZv3WyJ3pUegW4LXNp1xAf2abep44lYgWqqDWyWRlnpKayagqaTSaqR/OzNM3Iky9MnXqVz3g7CRBO28h2noUy4T6cW6HmlZ+xe3TWHOToJeWqiRnsY1HYuZxGscRpDUXIq5V7pZPhkLU2XbdQg", "body": "{\"消息\": {\"记录": [{\"s3\": {\"存储桶": {\"名称": \"demo-bucket-name\",\"arn\": \"arn:aws:s3:::d emo-bucket-name\"},\"object\": {\"key\": \"demo-key-prefix.json\"}}}]}}" } ] }

我正在尝试复制 aws sns 通知以创建一个示例 json,该示例仅包含我的使用案例的属性。这是 sns 生成的示例事件(从 lambda 控制台复制( - https://www.heypasteit.com/clip/0IUAE3。 我只选择我需要的属性,如 s3 bucket_name 或 arn 等。

但是,这里的问题是我在运行事件["记录"][0]["正文"]时遇到了错误,错误消息 -

回溯(最近一次调用(:文件 ",第 1 行,在 文件 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/init.py", 354 行,负载中 返回 _default_decoder.decode(s( 文件 "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", 第 342 行,解码中 raise JSONDecodeError("Extra data", s, end( json.decoder.JSONDecodeError: Extra data: 第 1 行第 251 列 (char 250(

我尝试使用 r"" 将 json 字符串包含在"body"键中,但没有运气。想知道创建 json 的正确格式是什么。

body

作为JSON 字符串无效。它包含 2 条没有[,的记录。

让我们打印您的正文字符串,然后用 https://jsonlint.com/进行验证

最新更新