我有一个 python 脚本,它从 S3 读取一个 excel 文件,但在 AWS Batch 中触发时出错。该代码在另一个 Ubuntu 机器上运行良好。
AttributeError: 'StreamingBody' object has no attribute 'seek'
Run Code Online (Sandbox Code Playgroud)
我阅读excel的代码部分如下
import boto3
import pandas as pd
session = boto3.Session(aws_access_key_id = config.access_key_id, aws_secret_access_key = config.secret_access_key)
client = session.client('s3')
obj = client.get_object(Bucket = s3_bucket, Key = s3_file)
df = pd.read_excel(obj['Body'],sheet_name=sheet_name, skiprows=1)
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢。
小智 17
似乎 read_excel 改变了传入的“类文件”对象的要求,现在这个对象必须有一个 seek 方法。我通过更改pd.read_excel(obj['Body'])为解决了这个问题pd.read_excel(io.BytesIO(file_obj['Body'].read()))
| 归档时间: |
|
| 查看次数: |
5760 次 |
| 最近记录: |