正在尝试滚动s3中的所有存储桶,以查看是否存在匹配的前缀并进入这些文件夹并读取json文件。
我试图获取包含前缀的文件夹,但是无法输入它们。
码:
import boto3
bucket = ['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,否则就会退出存储桶。
有谁可以帮我离开这里吗。
当存储桶不包含前缀时,尝试捕获错误(它是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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句