首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在AWS Lambda中将DynamoDB数据格式化为普通JSON

在AWS Lambda中将DynamoDB数据格式化为普通JSON
EN

Stack Overflow用户
提问于 2015-09-22 16:57:28
回答 9查看 59.4K关注 0票数 69

我正在使用AWS Lambda若要扫描数据,请执行以下操作:DynamoDB表格。这是我得到的回报:

代码语言:javascript
运行
复制
{
  "videos": [
    {
      "file": {
        "S": "file1.mp4"
      },
      "id": {
        "S": "1"
      },
      "canvas": {
        "S": "This is Canvas1"
      }
    },
    {
      "file": {
        "S": "main.mp4"
      },
      "id": {
        "S": "0"
      },
      "canvas": {
        "S": "this is a canvas"
      }
    }
  ]
}

我的前端应用程序正在使用Ember数据Rest适配器它不接受这样的响应。有没有办法让我得到普通的JSON格式?有一个名为NPM的模块dynamodb-marshaler将DynamoDB数据转换为普通的JSON。我在找一个本机解决方案如果可能的话。

EN

Stack Overflow用户

发布于 2017-12-06 07:44:28

Node.js使用unmarshall函数来源AWSJavaScriptSDK

代码语言:javascript
运行
复制
const AWS = require("aws-sdk");
    
exports.handler = function( event, context, callback ) {
    const newImages = event.Records.map(
            (record) => AWS.DynamoDB.Converter.unmarshall(record.dynamodb.NewImage)
    );
    console.log('Converted records', newImages);
    callback(null, `Success`);
}

Python使用TypeDeserializer.deserialize来自boto3.dynamodb.types

代码语言:javascript
运行
复制
import json
from boto3.dynamodb.types import TypeDeserializer

def ddb_deserialize(r, type_deserializer = TypeDeserializer()):
    return type_deserializer.deserialize({"M": r})

def lambda_handler(event, context):
    new_images = [ ddb_deserialize(r["dynamodb"]["NewImage"]) for r in event['Records'] ]
    print('Converted records', json.dumps(new_images, indent=2))
票数 87
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32712675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档