You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python和AWS Lambda在DynamoDB中存储数组列表数据

使用Python + AWS Lambda 将数组列表存储到DynamoDB(字段内JSON格式)

下面是具体的实现方案,分两种常见场景供你选择:

一、准备工作

  • 给Lambda的执行角色添加DynamoDB写入权限:生产环境建议创建自定义IAM策略,仅允许对目标表执行PutItem操作;测试阶段可临时附加AmazonDynamoDBFullAccess权限
  • Lambda运行环境默认自带boto3库,无需额外打包部署

二、场景1:直接存储DynamoDB原生复杂类型

DynamoDB支持直接存储列表(List)和映射(Map)类型,无需手动转JSON,后续查询时可直接解析结构。

示例代码

import boto3

# 初始化DynamoDB资源(比client更简洁,自动推断数据类型)
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

def lambda_handler(event, context):
    # 待存储的目标数据
    data = {
        "Items1": ["AAA", "BBB"],
        "Items2": ["CCC", "DDD"]
    }
    
    try:
        table.put_item(
            Item={
                # 必须指定表的主键,这里用id作为分区键示例
                'id': 'unique_record_001',
                'Data': data
            }
        )
        return {
            'statusCode': 200,
            'body': '数据存储成功'
        }
    except Exception as e:
        return {
            'statusCode': 500,
            'body': f'存储失败:{str(e)}'
        }

关键说明

  • 用boto3.resource无需手动指定数据类型标识(比如S代表字符串、L代表列表),会自动映射DynamoDB原生类型
  • 存储后在DynamoDB控制台可直接查看Data字段的嵌套结构,查询时能直接提取数组元素

三、场景2:将数组转成JSON字符串存储

如果需要把Data字段统一存为JSON格式的字符串,可通过json.dumps()转换后存储。

示例代码

import boto3
import json

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('YourTableName')

def lambda_handler(event, context):
    data = {
        "Items1": ["AAA", "BBB"],
        "Items2": ["CCC", "DDD"]
    }
    
    # 将嵌套数据转为JSON字符串
    data_json_str = json.dumps(data)
    
    try:
        table.put_item(
            Item={
                'id': 'unique_record_002',
                'Data': data_json_str
            }
        )
        return {
            'statusCode': 200,
            'body': 'JSON格式数据存储成功'
        }
    except Exception as e:
        return {
            'statusCode': 500,
            'body': f'存储失败:{str(e)}'
        }

关键说明

  • 存储后Data字段为字符串类型,后续查询需用json.loads()转回字典才能操作数组元素
  • 适合需要统一字段格式、或与其他系统交互的场景

四、测试验证

  1. 在Lambda控制台创建函数,粘贴代码并替换YourTableName为你的DynamoDB表名
  2. 配置测试事件(可填空JSON,代码内数据为硬编码;也可修改代码从event中读取传入数据)
  3. 执行测试后,前往DynamoDB控制台查看目标表,确认数据已存储

注意事项

  • 生产环境严格控制IAM权限,避免过度授权
  • 单条DynamoDB项目最大支持400KB,存储大数组时需注意大小限制
  • 如果数据来自外部触发(如API Gateway),需先解析event中的JSON数据,例如data = event['Data']

内容的提问来源于stack exchange,提问作者Sujitha G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:22:57