如何使用 python 解析 DynamoDB 发送到 Lambda 的数据结构?
How do I parse the data structure sent by DynamoDB to Lambda using python?
我正在尝试 link DynamoDB 与 Amazon Lambda,这样当一个项目被插入 DynamoDB 时,它将被发送到我的 lambda 函数,该函数将解析数据结构并对数据执行操作。但是,发布的数据如下所示:
{
"Records": [
{
"eventID": "ebefd45a0610c7a54654nb09b491c7c",
"eventVersion": "1.1",
"dynamodb": {
"SequenceNumber": "3300000555554005534567541",
"Keys": {
"Id": {
"S": "13"
}
},
"SizeBytes": 100,
"NewImage": {
"url": {
"S": "http:\/\/test.com\/blog\/tips-on-choosing-a-suitable-company-2\/"
},
"db_ref_id": {
"S": "123"
},
"Id": {
"S": "13"
}
},
"ApproximateCreationDateTime": 1472638500,
"StreamViewType": "NEW_AND_OLD_IMAGES"
},
"awsRegion": "us-west-2",
"eventName": "INSERT",
"eventSourceARN": "arn:aws:dynamodb:us-west-2:3454354:table\/urls\/stream\/2016-08-31T07:21:11.412",
"eventSource": "aws:dynamodb"
}
]
}
我在网上找到了这段代码:
for record in event['Records']:
print(record['eventID'])
然而,我修改了我的代码,但它不起作用:
for record in event['Records']:
print(record['dynamodb']['NewImage']['url']['S'])
由于我不太了解 python,我不确定解析此数据结构的最佳方法是什么。任何建议都会很有帮助。
print string['Records'][0]['eventID']
打印 eventID
这里涉及到很多数据结构。外层是 python 字典,您可以使用键接收其对象。
在我们的例子中,您的字典中只有一个映射,因此,假设您拥有的整个数据结构都分配在名为 event 的变量中,您可以执行 event['Records']。稍后,您有一个列表 []
,您只能使用索引获取其元素。 (例如列表[1]、列表[2] 等)
从你的格式来看,我想你可能有很多记录,你可以:
for record in event['Records']:
print(record['dynamodb']['NewImage']['url']['S'])
这应该会打印出您想要的内容,如果上面发布的数据是字符串,则需要首先使用 json python 模块进行解析。
我正在尝试 link DynamoDB 与 Amazon Lambda,这样当一个项目被插入 DynamoDB 时,它将被发送到我的 lambda 函数,该函数将解析数据结构并对数据执行操作。但是,发布的数据如下所示:
{
"Records": [
{
"eventID": "ebefd45a0610c7a54654nb09b491c7c",
"eventVersion": "1.1",
"dynamodb": {
"SequenceNumber": "3300000555554005534567541",
"Keys": {
"Id": {
"S": "13"
}
},
"SizeBytes": 100,
"NewImage": {
"url": {
"S": "http:\/\/test.com\/blog\/tips-on-choosing-a-suitable-company-2\/"
},
"db_ref_id": {
"S": "123"
},
"Id": {
"S": "13"
}
},
"ApproximateCreationDateTime": 1472638500,
"StreamViewType": "NEW_AND_OLD_IMAGES"
},
"awsRegion": "us-west-2",
"eventName": "INSERT",
"eventSourceARN": "arn:aws:dynamodb:us-west-2:3454354:table\/urls\/stream\/2016-08-31T07:21:11.412",
"eventSource": "aws:dynamodb"
}
]
}
我在网上找到了这段代码:
for record in event['Records']:
print(record['eventID'])
然而,我修改了我的代码,但它不起作用:
for record in event['Records']:
print(record['dynamodb']['NewImage']['url']['S'])
由于我不太了解 python,我不确定解析此数据结构的最佳方法是什么。任何建议都会很有帮助。
print string['Records'][0]['eventID']
打印 eventID
这里涉及到很多数据结构。外层是 python 字典,您可以使用键接收其对象。
在我们的例子中,您的字典中只有一个映射,因此,假设您拥有的整个数据结构都分配在名为 event 的变量中,您可以执行 event['Records']。稍后,您有一个列表 []
,您只能使用索引获取其元素。 (例如列表[1]、列表[2] 等)
从你的格式来看,我想你可能有很多记录,你可以:
for record in event['Records']:
print(record['dynamodb']['NewImage']['url']['S'])
这应该会打印出您想要的内容,如果上面发布的数据是字符串,则需要首先使用 json python 模块进行解析。