簡體   English   中英

如何使用python解析DynamoDB發送給Lambda的數據結構?

[英]How do I parse the data structure sent by DynamoDB to Lambda using python?

我正在嘗試將DynamoDB與Amazon Lambda鏈接,以便在DynamoDB中插入一個項目時將其發送到我的lambda函數,該函數將解析數據結構和對數據的perfomr操作。 但是,發布的數據如下所示:

{
      "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']。 稍后,您將有一個列表[] ,只能使用索引來獲取其元素。 (例如list [1],list [2]等)

因為從您的格式來看,我想您可能有很多記錄,您可以:

for record in event['Records']: print(record['dynamodb']['NewImage']['url']['S'])

如果上面發布的數據是字符串,則需要先使用json python模塊進行解析,這應該會打印出您想要的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM