1. ホーム
  2. python

[解決済み] Amazon S3から特定の名前だけを持つファイルを読み込む

2022-03-03 14:45:04

質問

Amazon S3に接続し、以下のコードを使用して複数のバケットからJSONコンテンツからデータを取得しようとしています。

しかし、私は特定のJSONファイルだけを読み取る必要があり、すべてではありません。どうすればいいでしょうか?

コード

for i in bucket:
    try:
          result = client.list_objects(Bucket=i,Prefix = 'PROCESSED_BY/FILE_JSON', Delimiter='/')
          content_object = s3.Object(i, "PROCESSED_BY/FILE_JSON/?Account.json")
          file_content = content_object.get()['Body'].read().decode('utf-8')
          json_content = json.loads(file_content)
    except KeyError:
          pass

バケツ構造の例です。

test-eob/PROCESSED_BY/FILE_JSON/222-Account.json
test-eob/PROCESSED_BY/FILE_JSON/1212121-Account.json
test-eob/PROCESSED_BY/FILE_JSON/122-multi.json
test-eob/PROCESSED_BY/FILE_JSON/qwqwq-Account.json
test-eob/PROCESSED_BY/FILE_JSON/wqwqw-multi.json

上記のリストの中から、*-Account.jsonファイルだけを読み込みたいのですが。

どうすれば実現できますか?

どのように解決するのですか?

には、いくつかの方法があります。 パイソン . 例えば '文字列A'は'文字列B'の中にあります。 :

list1=['test-eob/PROCESSED_BY/FILE_JSON/222-Account.json',
'test-eob/PROCESSED_BY/FILE_JSON/1212121-Account.json',
'test-eob/PROCESSED_BY/FILE_JSON/122-multi.json',
'test-eob/PROCESSED_BY/FILE_JSON/qwqwq-Account.json',
'test-eob/PROCESSED_BY/FILE_JSON/wqwqw-multi.json',]

for i in list1:
    if 'Account' in i:
        print (i)
    else:
        pass