从S3 bucket中的CSV文件读取数据,并将其存储在python字典中

2024-04-24 00:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从S3 bucket读取csv文件,并将其内容存储到字典中。 示例csv文件数据。我想使用第一行作为键,后续行作为值

name,origin,dest
xxx,uk,france
yyyy,norway,finland
zzzz,denmark,canada

我使用下面的代码将整行存储在字典中。但我想循环遍历每一行,并将每一个字段作为键值对存储在一行中

{'name':'xxx','origin':'uk','dest':'france'}

s3 = boto3.client('s3')
obj = s3.get_object(Bucket = 'bucket_name', Key = 'logs/log.csv')
lines = obj['Body'].read().decode("utf-8").replace("'", '"')
lines = lines.splitlines()
if (isinstance(lines, str)):
        lines = (lines)

docData = {}
for line in lines:
        docData['content'] = str(line)

print(docData)

Tags: 文件csvnameobj字典s3bucketorigin
1条回答
网友
1楼 · 发布于 2024-04-24 00:40:43

假设

s3 = boto3.client('s3')
obj = s3.get_object(Bucket = 'bucket_name', Key = 'logs/log.csv')
lines = obj['Body'].read().decode("utf-8")

将csv的内容生成为字符串,然后您可以使用标准库的csv模块获取dict列表

import csv
import io

buf = io.StringIO(lines)
reader = csv.DictReader(buf)
rows = list(reader) 

相关问题 更多 >