我试图滚动 s3 中的所有存储桶并查看是否有匹配的前缀并进入这些文件夹并读取 json 文件。我试图获取包含前缀的文件夹,但无法输入它们。代码:import boto3bucket = ['test-eob', 'test-eob-images']client = boto3.client('s3')for i in bucket: result = client.list_objects(Bucket=i,Prefix = 'PROCESSED_BY/FILE_JSON', Delimiter='/') print(result)使用这个我得到的是有前缀的,当桶没有那个前缀时失败。的结构,如果只有我的前缀匹配test-eob,test-eob/PROCESSED_BY/FILE_JSON/*.json 我必须读取 json,否则就会从桶中出来。有人可以帮我从这里出去吗。
1 回答
青春有我
TA贡献1784条经验 获得超8个赞
KeyError当桶不包含前缀时,尝试捕获错误(是吗?)。
例如:
for i in bucket:
try:
result = client.list_objects(Bucket=i,Prefix = 'PROCESSED_BY/FILE_JSON', Delimiter='/')
print(result)
except KeyError:
pass
要读取json,有几种方法。例如json.loads()来自 json 模块。
所以对于桶中的每个对象:
content_object = s3.Object(bucket_name, file_name)
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = json.loads(file_content)
添加回答
举报
0/150
提交
取消