使用 python 从 s3 加载文件及其子文件夹

Jan*_*nnk 3 python amazon-s3 boto amazon-web-services boto3

我正在尝试从 aws 中的 s3 存储桶加载 pandas 中的 csv 文件。Boto3 似乎在提供从子文件夹加载文件的功能方面存在不足。假设我在 s3 中有以下路径:bucket1/bucketwithfiles1/file1.csv

如何指定如何加载 file1.csv?我知道 s3 没有目录结构。

import boto3
import pandas as pd

s3 = boto3.client('s3')
obj = s3.get_object(Bucket='/bucket1/creditdefault-ff.csv')

df = pd.read_csv(obj['Body'])
Run Code Online (Sandbox Code Playgroud)

Mar*_*k B 7

您似乎混淆了存储桶、文件夹和对象键。您的代码应如下所示(其中 key 包含文件夹和文件名,bucket 仅包含 S3 存储桶名称):

obj = s3.get_object(Bucket='bucketname', Key='folder1/folder2/filename.csv')
Run Code Online (Sandbox Code Playgroud)

  • 我看了很多答案,也许我错过了其他答案的关键点,但你的答案是最清楚的,那就是 - **将假文件夹结构添加到文件中,而不是存储桶**。谢谢! (2认同)