python - 在python中通过json数据解析aws sns事件数据

标签 python json parsing

我能够使用

将 sns 事件数据分配给变量
def lambda_handler(event, context):
    message = event['Records'][0]['Sns']['Message']
    print("From SNS: " + message)

输出:

{
    "Records": [
        {
            "eventVersion": "2.0",
            "eventSource": "aXXXX",
            "awsRegion": "XXXXX",
            "eventTime": "2016-03-09T12:24:19.255Z",
            "eventName": "ObjectCreated:Put",
            "userIdentity": {
                "principalId": "AWS:XXXXXXXXXXX"
            },
            "requestParameters": {
                "sourceIPAddress": "xxx.xxx.xx.xx"
            },
            "responseElements": {
                "x-amz-request-id": "XXXX",
                "x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            },
            "s3": {
                "s3SchemaVersion": "1.0",
                "configurationId": "xxx-xxx-xxx",
                "bucket": {
                    "name": "bucketname",
                    "ownerIdentity": {
                        "principalId": "XXXXXX"
                    },
                    "arn": "arn:aws:s3:::xxxxx"
                },
                "object": {
                    "key": "index.js",
                    "size": 7068,
                    "eTag": "xxxx",
                    "sequencer": "0000000000"
                }
            }
        }
    ]
}

我无法进一步解析并获取 awsRegion 的值, Records.s3.bucket.nameRecords.s3.object.key .

我试过了bucketname = message['Records'][0]['s3']['bucket']['name'] . 收到错误 TypeError: string indices must be integers

最佳答案

我认为您可能需要加载 json:

import json

def lambda_handler(event, context):
    message = event['Records'][0]['Sns']['Message']
    parsed_message = json.loads(message)
    print(parsed_message['Records'][0]['s3']['bucket']['name'])

给我

u'bucketname'

或者您是否在函数之外的某处执行加载?

关于python - 在python中通过json数据解析aws sns事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35911348/

相关文章:

python - Django 模型(动态?)

json - 如何使用 golang 从解析的 json 数组中获取特定值?

Python:从文件名中提取唯一ID

python - 在 Geopandas/Shapely 中识别独特的多边形分组

python - 在我的不和谐机器人上同时运行两个循环

javascript 迭代对象数组

json - 通过别名检索时,Elastic Search文档更新花费的时间太长

python - 如何从元组列表中提取模式元组?

使用 IF 语句的 Python 用户定义函数不起作用

javascript - 为什么 JSON 通过 jslint.com 测试时 $.getJSON 会失败?