python - 将 CSV 从 AWS S3 实例导入到 Numpy

标签 python amazon-web-services numpy csv amazon-s3

我一直在尝试直接将 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/

相关文章:

python - Weaviate 与 Azure 认知搜索相结合

旋转窗口不适合图像后的 Python 2.7.3 + OpenCV 2.4

python - 如何合并上三角形和下三角形,同时添加 1 的对角线

amazon-web-services - 删除 Cloudformation 模板中 "Fn::join"之前的空项

python-2.7 - AWS Lambda 和 Numpy 库 - 导入多数组 numpy 扩展模块失败

Python - 如何根据分度计将列中的单元格拆分为新行

python - 如何使输入行低于打印行?

postgresql - 从 AWS Aurora 迁移到本地 Postgres 9.6 数据库

amazon-web-services - AWS/ELB 连接耗尽问题

python - 如何在 Python 中散列一个大对象(数据集)?