python-3.x - 无法读取 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'
解决方案
有两种使用方式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资源上使用它。因此,您可以使用客户端而不是资源,或者将调用更改为资源样式调用。
推荐阅读
- firebase - 如何让firebase在登录时不为Google OAuth创建新用户?
- ruby-on-rails - Rails 服务器 url 不适用于嵌套路由
- python - 在所有可用记录中,哪个月的 maximum_gust_speed 中位数最高
- ssis - SSIS(SQL Server 集成服务)安装失败
- node.js - Angular on prod - 如何查看使用了哪些包(不带 npm)
- jquery - CSS/jQuery 在滚动时改变背景
- elixir - 在 Elixir 生产部署期间数据库种子未运行
- powershell - 无法在 Powershell 中获取 Switch 条件的输出。用例是在包含扩展名为 *.bo、*.mo 的文件的目录中简单地检查关键字“G-”
- powershell - 未找到 Microsoft Teams Powershell 函数集-CsExternalAccessPolicy
- asp.net-core - 在多个项目中使用 JWT 令牌