无法使用python将数据附加到aws s3中的现有csv文件中

mitkmikd  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(389)

我在s3存储桶中有一个csv文件,并在本地机器中配置了aws cli。每当调用python脚本时,我都想将数据附加到该csv文件中,但我无法做到这一点。

s3_client = boto3.client('s3')
df = pd.DataFrame(data_list)
bytes_to_write = df.to_csv(None, header=None, index=False).encode()
file_name = 'test.csv'

# get the existing file

current_data = s3_client.get_object(Bucket='test-bucket', Key=file_name)

# append

appended_data = current_data + bytes_to_write

# overwrite

s3_client.put_object(Body=appended_data, Bucket='test-bucket', Key=file_name)
enter code here

我已经尝试了上面的代码,但不幸的是无法完成操作,我得到了以下错误

Traceback (most recent call last):
  File "script.py", line 17, in <module>
    appended_data = current_data + bytes_to_write
TypeError: unsupported operand type(s) for +: 'dict' and 'bytes'

有什么解决办法吗?请帮帮我!

8yparm6h

8yparm6h1#

current_data = s3_client.get_object(Bucket='test-bucket', Key=file_name)

如本文所述,get_对象返回一个dict
您可能正在寻找

s3_client.get_object(Bucket='test-bucket', Key=file_name)['Body'].read().decode("utf-8")

相关问题