繁体   English   中英

使用 boto3 从 AWS S3 读取 csv 文件的问题

[英]issue with reading csv file from AWS S3 with boto3

我有一个包含以下列的 csv 文件:

名称 地址/1 地址/2 城市 State

当我尝试从本地磁盘读取这个 csv 文件时,我没有遇到任何问题。

但是,当我尝试使用以下代码从 S3 读取它时,当我使用 io.StringIO 时出现错误。 当我使用 io.BytesIO 时,每条记录显示为一列。 尽管该文件是一个“,”分隔的某些列,但其中确实包含“/n”或“/t”。 我相信这些导致了问题。

我使用 AWS Wrangler 没有问题。 但我的要求是用 boto3 读取这个 csv 文件

import pandas as pd
import boto3

s3 = boto3.resource('s3', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
my_bucket = s3.Bucket(AWS_S3_BUCKET)
csv_obj=my_bucket.Object(key=key).get().get('Body').read().decode('utf16')
data= io.BytesIO(csv_obj) #io.StringIO(csv_obj)
sdf = pd.read_csv(data,delimiter=sep,names=cols, header=None,skiprows=1)
print(sdf)

Any suggestion please?

试试 get_object():

obj = boto3.client('s3').get_object(Bucket=AWS_S3_BUCKET, Key=key)
data = io.StringIO(obj['Body'].read().decode('utf-8'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM