30秒到達(dá)戰(zhàn)場
2022-12-20 13:44:07
我試圖滾動 s3 中的所有存儲桶并查看是否有匹配的前綴并進(jìn)入這些文件夾并讀取 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)使用這個(gè)我得到的是有前綴的,當(dāng)桶沒有那個(gè)前綴時(shí)失敗。的結(jié)構(gòu),如果只有我的前綴匹配test-eob,test-eob/PROCESSED_BY/FILE_JSON/*.json 我必須讀取 json,否則就會從桶中出來。有人可以幫我從這里出去嗎。
1 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
KeyError當(dāng)桶不包含前綴時(shí),嘗試捕獲錯(cuò)誤(是嗎?)。
例如:
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 模塊。
所以對于桶中的每個(gè)對象:
content_object = s3.Object(bucket_name, file_name)
file_content = content_object.get()['Body'].read().decode('utf-8')
json_content = json.loads(file_content)
添加回答
舉報(bào)
0/150
提交
取消