【发布时间】:2020-09-02 18:11:05
【问题描述】:
在 S3 存储桶中有一个 CSV 文件,我想在 Python 中解析并转换为字典。使用 Boto3,我调用了 s3.get_object(<bucket_name>, <key>) 函数并返回一个字典,其中包含一个 "Body" : StreamingBody() 键值对,显然包含我想要的数据。
在我的 python 文件中,我添加了import csv 以及我在网上看到的关于如何读取 csv 文件的示例,您传递的文件名如下:
with open(<csv_file_name>, mode='r') as file:
reader = csv.reader(file)
但是,如果可能的话,我不确定如何从 StreamBody 检索 csv 文件名。如果没有,有没有更好的方法让我在 Python 中读取 csv 文件?谢谢!
编辑:想补充一点,我在 AWS Lambda 中执行此操作,并且在 Lambda 中使用 pandas 存在记录问题,所以这就是我想使用 csv 库而不是 pandas 的原因。
【问题讨论】:
-
您可以使用
response['Body'].read()之类的方式读取 CSV 数据,然后将结果传递给csv.reader()(尽管您可能必须先对其进行解码并将其拆分为行)。