无法读取S3存储桶中存在的CSV文件的数据

时间:2019-09-04 19:41:09

标签: python-3.x amazon-web-services amazon-s3

我正在尝试访问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'

1 个答案:

答案 0 :(得分:0)

有两种使用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 资源上使用它。因此,您可以使用客户端代替资源,也可以将调用更改为资源样式的调用。