首页 > 解决方案 > 将 CSV 从 AWS S3 实例导入到 Numpy

问题描述

我一直在尝试将 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 和奇怪的标题。这是否与我将文件上传到 AWS 的方式有关,还是我在读取文件时搞砸了?

标签: pythonamazon-web-servicesnumpycsvamazon-s3

解决方案


body.read()返回字节。

import json
j = json.loads(s3_obj['Body'].read().decode('utf-8'))

decode将字节转换为字符串,json.loads将字符串解析为字典。


推荐阅读