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

如何在含多子目录的S3 Bucket中查找所有.json文件并解析指定键值?

在S3 Bucket中批量查找并处理所有JSON文件

当然可以,下面是几种实用的实现方式:

方法1:使用AWS CLI定位或批量下载

如果只是先定位所有JSON文件,用递归遍历结合后缀过滤:

aws s3 ls s3://your-bucket-name/ --recursive | grep "\.json$"

这条命令会输出Bucket下所有子目录中的.json文件路径。如果需要把这些文件批量下载到本地目录:

aws s3 cp s3://your-bucket-name/ ./local-folder/ --recursive --exclude "*" --include "*.json"

方法2:用Python boto3直接遍历解析(无需本地下载)

如果要在代码中直接迭代并解析JSON文件的键值对,boto3是最便捷的方案:

import boto3
import json

s3_client = boto3.client('s3')
bucket_name = 'your-bucket-name'

# 用分页器处理大量文件的遍历
paginator = s3_client.get_paginator('list_objects_v2')
pages = paginator.paginate(Bucket=bucket_name)

for page in pages:
    if 'Contents' not in page:
        continue
    for obj in page['Contents']:
        file_key = obj['Key']
        # 筛选JSON后缀的文件
        if file_key.endswith('.json'):
            # 获取文件内容并解析
            response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
            json_data = json.loads(response['Body'].read().decode('utf-8'))
            # 提取指定键值,示例:获取"target_field"的值
            target_value = json_data.get('target_field')
            print(f"文件 {file_key} 目标值: {target_value}")

分页器会自动处理大Bucket的分页逻辑,避免内存溢出。

方法3:S3 Inventory(超大型Bucket首选)

如果Bucket包含百万级以上文件,用S3 Inventory生成清单更高效:

  • 在AWS控制台开启S3 Inventory,配置筛选.json后缀的对象,输出格式选CSV
  • 定期生成的清单会存储到指定S3路径,读取清单即可获取所有JSON文件的完整路径,再批量处理

内容的提问来源于stack exchange,提问作者αԋɱҽԃ αмєяιcαη

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:01:09