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()
このデータを読み取って作業するには、次に何をする必要がありますか?
それにかなりの時間を費やしました、そしてここに私がそれを機能させた方法があります、
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')
ローカルでダウンロードまたは保存することなく、S3から直接xlsファイルを読み取ることができます。 xlrd
モジュールには、ワークブックオブジェクトを作成するための生データを提供するための規定があります。以下はコードスニペットです。
from boto3 import Session
from xlrd.book import open_workbook_xls
aws_id = ''
aws_secret = ''
bucket_name = ''
object_key = ''
s3_session = Session(aws_access_key_id=aws_id, aws_secret_access_key=aws_secret)
bucket_object = s3_session.resource('s3').Bucket(bucket_name).Object(object_key)
content = bucket_object.get()['Body'].read()
workbook = open_workbook_xls(file_contents=content)
PythonはExcelファイルをネイティブでサポートしていません。 pandas library pandas library read_Excel functions を使用できます