我一直在尝试直接将 csv 文件从 AWS S3 读取到 numpy。我用过:
s3 = boto3.client(service_name = 's3')
def s3_read(filename):
s3_obj = s3.get_object(Bucket = 'bucket-name', Key = filename)
body = s3_obj['Body']
return body.read()
尝试提取数据,但我遇到了 AWS 格式化问题,我不知道如何处理。
当我打印出从中返回的数据时,数据之前有一个奇怪的标题:
b{\n "名称":"文件名",\n "数据":{\n "类型":"缓冲区,\n "数据:[\n 114,\n 97,.. .]}}
所以有一堆\n 和奇怪的 header 。这是否与我将文件上传到 AWS 的方式有关,还是我在读取文件时搞砸了?
最佳答案
body.read()
返回字节。
import json
j = json.loads(s3_obj['Body'].read().decode('utf-8'))
decode
会将字节转换为字符串,json.loads
会将字符串解析为字典。
关于python - 将 CSV 从 AWS S3 实例导入到 Numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62505100/