我試圖滾動 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
提交
取消