首页 > 解决方案 > 无法读取 S3 存储桶中存在的 CSV 文件的数据

问题描述

我正在尝试访问 S3 存储桶中存在的 CSV 文件。不幸的是,到目前为止似乎没有任何效果。谁能帮助我。我想要做的就是从 CSV 访问 S3 存储桶内的数据并打印它的一些列

下面是我试过的代码:'''

                      bucket = "bucket name"
                     file_name = "SUBFOLDER1/SUBFOLDER2/.CSV file"
                     obj = s3_resource.get_object(Bucket= bucket, Key= file_name)
                     initial_df = pd.read_csv(obj['Body'])
                     print(initial_df)

''''

我得到的错误是:s3.ServiceResource'对象没有属性'get_object'

标签: python-3.xamazon-web-servicesamazon-s3

解决方案


有两种使用方式boto3

客户端方法

s3_client = boto3.client('s3')

客户端上的调用一对一映射到 AWS API 调用。他们返回一个 JSON 博客,您可以像这样访问它:

for reservation in response['Reservations']:

资源方法

s3_resource = boto3.resource('s3')

这将返回可以直接使用的Python对象,例如:

for object in Bucket('name').objects.all():

现在,回答你的问题...

您显示这行代码:

obj = s3_resource.get_object(Bucket= bucket, Key= file_name)

get_object()调用应该在 boto3客户端上使用,但您似乎正试图在 boto3资源上使用它。因此,您可以使用客户端而不是资源,或者将调用更改为资源样式调用。


推荐阅读