gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:48:42 24 4
gpt4 key购买 nike

我正在使用 AWS Lambda 扫描 DynamoDB 表中的数据。这就是我得到的返回:

{
"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 Data Rest Adapter。有什么办法可以获得正常的 JSON 格式?有一个名为 dynamodb-marshaler 的 NPM 模块可将 DynamoDB 数据转换为普通 JSON。如果可能,我正在寻找本地解决方案

最佳答案

Node.js使用 AWSJavaScriptSDK 中的 unmarshall 函数:

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使用 boto3.dynamodb.types 中的 TypeDeserializer.deserialize :

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))

关于json - 在 AWS Lambda 中将 DynamoDB 数据格式化为普通 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32712675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com