从 S3 读取 csv 并在更新后上传回来

Reading a csv from S3 and uploading it back after updates

我想从 S3 读取一个 csv 文件,对其进行一些更改,然后重新上传该文件。 我的所有代码都在 lambda 中,因此本地文件不存在。

我有读取 csv 并对其进行更改的代码。我不知道如何把它放回去。我的最终数据是一个列表列表,其中每个列表代表 csv 文件中的一行。

这是我的。

s3 = boto3.client('s3')
obj = s3.get_object(Bucket=bucket_name, Key=myKet)
data = obj['Body'].read().decode('utf-8')
spamreader = csv.reader(io.StringIO(data), delimiter=',')
existing_data = []
for row in spamreader:
    existing_data.append(row)
# Add new data to it
existing_data.append([1,2,3])

如有任何帮助,我们将不胜感激。谢谢!

能做到这样。

csv_buffer = io.StringIO()
for line in existing_data:
    csv_buffer.write(','.join(line) + '\n')
s3.put_object(Bucket=bucket_name, Key=myKey, Body=csv_buffer.getvalue())