![](/img/trans.png)
[英]Reading a subset of csv files from S3 bucket using lambda and boto3
[英]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.