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

如何使用Python通过boto3直接将JSON数据写入S3中的文件

使用boto3将Python JSON数据直接写入S3的方法

前置条件

  • 已安装boto3:可执行pip install boto3完成安装
  • 已配置有效的AWS访问凭证(支持本地凭证文件、环境变量、ECS/EKS/EC2 IAM角色等多种认证方式)

实现步骤

你不需要先把数据写到本地磁盘再上传,可以直接将Python对象序列化为JSON字符串后转字节流,直接上传到S3:

  1. 导入依赖库
  2. 将Python列表/字典对象序列化为JSON格式的字节流
  3. 调用boto3的S3上传接口直接写入
import json
import boto3

# 你的原始数据
a = [{"a":1, "b":1}, {"a":3, "b":3}]

# 初始化S3客户端
s3 = boto3.client('s3')

# 序列化为JSON字节流,ensure_ascii=False可保留非ASCII字符不转义
json_bytes = json.dumps(a, ensure_ascii=False).encode('utf-8')

# 直接写入S3,替换为你自己的桶名和文件路径
s3.put_object(
    Bucket='你的S3桶名称',
    Key='存储的文件路径/xxx.json',
    Body=json_bytes,
    ContentType='application/json' # 可选,指定Content-Type方便后续直接在浏览器访问时自动识别格式
)

其他可选写法(使用S3 Resource)

如果你习惯用boto3的Resource风格接口,也可以用下面的写法:

import json
import boto3

a = [{"a":1, "b":1}, {"a":3, "b":3}]
s3 = boto3.resource('s3')
s3.Object('你的S3桶名称', '存储的文件路径/xxx.json').put(
    Body=json.dumps(a, ensure_ascii=False).encode('utf-8'),
    ContentType='application/json'
)

注意事项

  • 请确保你的AWS账号对应凭证有目标S3桶的s3:PutObject权限
  • 如果需要压缩后上传,可以直接在序列化后加gzip压缩逻辑,不需要落地本地文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:45:03