python - 如何附加到 AWS S3 上的 json 文件
问题描述
我需要附加到 aws S3 上的 json 文件,python 代码在 EC2 实例上运行。
在本地设置中,我可以轻松地执行以下操作:
import json
#example data
json_data = {"id": "123", "name": "XYZ", "transaction": [20.0, 30.0]}
# path
local_path = '/home/ubuntu/test.json'
with open(local_path, 'a', encoding='utf-8-sig') as file:
json.dump(json_data, file)
file.write('\n')
file.close()
在 EC2 上,我可以按如下方式连接到 S3:
import boto
s3_open = boto.connect_s3(host='s3.eu-central-1.amazonaws.com')
我定义了 S3 的路径:
s3_path = 's3://my-bucket/test.json'
如何使用上述逻辑附加到此文件?
解决方案
S3 没有附加操作,您可以下载文件,自行附加,然后将其作为同一对象的新版本上传。
沿着这些思路。
import json
import boto3
s3_path = '/some/s3/path'
bucket = 'somebucket'
local_data = {"id": "123", "name": "XYZ", "transaction": [20.0, 30.0]}
s3 = boto3.client('s3')
resp=s3.get_object(Bucket=bucket, Key=s3_path)
data=resp.get('Body')
json_data = json.loads(data)
json_data.append(local_data)
s3.put_object(Bucket=bucket, Key=s3_path, Body=json.dumps(json_data).encode())
推荐阅读
- opencv - OpenCV 相机校准和 SolvePNP 转换结果
- regex - 拆分正则表达式,只返回字符、数字和下划线。Perl
- php - MySQL:过滤结果的查询
- django - 使用Django中的related_name属性访问父模型中的子模型实例
- python-3.x - 在 python 3.7 中正确使用函数
- ruby-on-rails - 使用其他应用程序 database.yml 的控制台数据库命令
- javascript - 在 Javascript 中创建可折叠的 json 树结构
- python-3.x - 具有多个属性python的ARIMA
- twitter-bootstrap - 无法弄清楚如何在引导程序 4 中更改导航栏
- javascript - React-Data-Grid 的不可点击行