使用 Boto3 会话读取 S3 CSV 文件

问题描述 投票:0回答:1

我目前正在使用 boto3 客户端读取 Python 数据框中的 S3 csv 文件。下面是代码(无法正常工作,许多列合并为一列,而不是我的数据框有 8 列,而不是 40 列)。有人可以建议使用 boto3 会话阅读替代/更好的代码吗?

s3 = session.resource('s3')
obj = s3.Object(bucket_name=Buckets,key=filename)
response=obj.get()
data = response['Body'].read()
df = pd.read_fwf((io.BytesIO(data)) ,  delimiter=',', error_bad_lines=False,header=None)
print(df)

我可以使用 boto3 客户端来做到这一点。我使用了下面的代码(我也可以对 boto3 会话做类似的事情,因为这看起来很干净并且工作正常):

response = s3_client.get_object(Bucket=Bucket1, Key=filename)
books_df = pd.read_csv(response.get("Body"))
python-3.x pandas dataframe amazon-s3 boto3
1个回答
0
投票

你可以尝试:

s3 = session.resource('s3')
obj = s3.Object(bucket_name=Buckets,key=filename)
response=obj.get()
data = response['Body'].read().decode('utf-8')
string_io_results = StringIO(data)
df = pd.read_csv(string_io_results)
print(df)
© www.soinside.com 2019 - 2024. All rights reserved.