Python:如何从 AWS S3 读取和加载 excel 文件?

新手上路,请多包涵

我已经将一个 excel 文件上传到 AWS S3 存储桶,现在我想用 python 读取它。任何帮助,将不胜感激。这是我到目前为止所取得的成就,

 import boto3
import os

aws_id = 'aws_id'
aws_secret = 'aws_secret_key'

client = boto3.client('s3', aws_access_key_id=aws_id, aws_secret_access_key=aws_secret)
bucket_name = 'my_bucket'
object_key = 'my_excel_file.xlsm'
object_file = client.get_object(Bucket=bucket_name, Key=object_key)
body = object_file['Body']
data = body.read()

接下来我需要做什么才能读取这些数据并对其进行处理?

原文由 exan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 993
2 个回答

花了很多时间在上面,这就是我如何让它工作的,

 import boto3
import io
import pandas as pd
import json

aws_id = ''
aws_secret = ''
bucket_name = ''
object_key = ''

s3 = boto3.client('s3', aws_access_key_id=aws_id, aws_secret_access_key=aws_secret)
obj = s3.get_object(Bucket=bucket_name, Key=object_key)
data = obj['Body'].read()
df = pd.read_excel(io.BytesIO(data), encoding='utf-8')

原文由 exan 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 awswrangler.s3.read_excel 直接读取 excel 文件。请注意,您可以将任何 pandas.read_excel() 参数(工作表名称等)传递给它。

 import awswrangler as wr
df = wr.s3.read_excel(path=s3_uri)

原文由 milihoosh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题