亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從多個文件夾的 s3 桶中只讀取特定的 json 文件

從多個文件夾的 s3 桶中只讀取特定的 json 文件

30秒到達戰場 2022-12-20 13:44:07
我試圖滾動 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)


查看完整回答
反對 回復 2022-12-20
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號