我正在尝试访问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'
答案 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 资源上使用它。因此,您可以使用客户端代替资源,也可以将调用更改为资源样式的调用。