提问人:WindSwept 提问时间:7/12/2021 最后编辑:John RotensteinWindSwept 更新时间:12/2/2022 访问量:1303
从 API 保存到 S3 存储桶
saving from api to s3 bucket
问:
我正在尝试获取以下 python 代码以使用 bot03 和 python 将 csv 从 api 保存到 amazon s3 存储桶,但我看不出我哪里出了问题。当我执行代码时,我没有收到任何错误,但该文件从未出现在 s3 存储桶中。
import boto3
from botocore.exceptions import ClientError
file_name = "test.csv"
bucket = "mybucket"
def main():
url = "https://api0.solar.sheffield.ac.uk/pvlive/v3/pes/10?start=2021-01-01T00:00:00&end=2021-07-06T00:00:00&data_format=csv"
x = requests.get(url,headers={'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate',})
s3 = bot03.client("s3")
with open("test.csv","rb") as file2:
s3.upload_fileobj(x.content, bucket, "test.cvc")
任何提示/建议将不胜感激。我是python / aws新手,所以如果是一个基本问题,我深表歉意
答:
1赞
WindSwept
7/13/2021
#1
我使用这段代码来实现我需要的东西
file_name = "test.csv"
bucket = "my_bucket"
def main():
url = "https://api0.solar.sheffield.ac.uk/pvlive/v3/pes/10?start=2021-01-01T00:00:00&end=2021-07-06T00:00:00&data_format=csv"
x = requests.get(url,headers={'Content-Type': 'application/json', 'Accept': 'application/json', 'Accept-Encoding': 'gzip, deflate',})
s3_resource = boto3.resource('s3')
s3_resource.Object(bucket, 'snowflake/csv/df1.csv').put(Body=x.content)
if __name__ == "__main__":
main()
评论
0赞
Sanchez333
6/24/2022
感谢您坚持这样做并给出答案。你救了我,正好赶上了我的演讲!
0赞
Sanchez333
6/24/2022
万一有其他人来看,这个问题的答案也有一些有用的代码:stackoverflow.com/questions/40336918/......
-1赞
Henry Wang
12/2/2022
#2
根据 OP(原始帖子), 你试过了吗
(第 11 行) s3 = boto3.client(“s3”) -- OP: bot03.client(“s3”)
评论