我目前正在使用 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"))
你可以尝试:
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)