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

如何通过boto3将JSON拆分后的数组上传至AWS DynamoDB

解决方案

方法一:上传脚本内直接预处理数据

读取JSON后即时处理publisher字段,再上传至DynamoDB:

import json
import boto3

# 初始化DynamoDB资源与目标表
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('你的目标表名')

# 读取原始JSON数据
with open('data.json', 'r', encoding='utf-8') as f:
    items = json.load(f)

# 遍历处理每个条目
for item in items:
    # 检查publisher字段存在且为字符串类型
    if 'publisher' in item and isinstance(item['publisher'], str):
        # 按竖线分割为数组
        item['publisher'] = item['publisher'].split('|')
        # 可选:过滤空元素(若存在空字符串分割情况)
        # item['publisher'] = [pub for pub in item['publisher'].split('|') if pub]

# 批量上传(数据量大时用batch_writer提升效率)
with table.batch_writer() as batch:
    for item in items:
        batch.put_item(Item=item)

方法二:预处理JSON文件后上传

先生成处理后的JSON文件,再用原脚本上传:

import json

# 读取原始数据
with open('data.json', 'r', encoding='utf-8') as f:
    items = json.load(f)

# 处理publisher字段
for item in items:
    if 'publisher' in item and isinstance(item['publisher'], str):
        item['publisher'] = item['publisher'].split('|')
        # 可选过滤空元素
        # item['publisher'] = [pub for pub in item['publisher'].split('|') if pub]

# 写入处理后的文件
with open('processed_data.json', 'w', encoding='utf-8') as f:
    json.dump(items, f, ensure_ascii=False, indent=2)

之后直接用原脚本读取processed_data.json上传即可。

关键注意点

  • 确保DynamoDB表中publisher字段的属性类型配置为List,否则会因类型不匹配报错。
  • 若存在空字符串分割出['']的情况,可通过列表推导式过滤空元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:51:12