我想解析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中使用熊猫存在一些已记录的问题,所以这就是为什么我想要使用csv库而不是pandas的原因。
csv.reader不需要文件。它可以使用遍历行的任何内容,包括文件和列表。
因此,您不需要文件名。只需将response ['Body']中的行直接传递到阅读器即可。一种方法是
lines = response['Body'].read().splitlines(True)
reader = csv.reader(lines)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句