如何使用Python将HTTP API返回结果以JSON文件格式上传至AWS S3存储桶
S3上传JSON文件格式修正方案
你现在的问题是上传的文件没有被识别为JSON格式,只需要调整两处代码即可解决:
- 给S3对象键(Key)添加
.json后缀,让文件系统和S3可以从文件名识别格式 - 调用
put_object时显式指定ContentType参数为application/json,声明文件的MIME类型
修改后的完整代码
import json import requests import boto3 # 生产环境建议不要硬编码AK/SK,推荐使用IAM角色、环境变量或者~/.aws/credentials文件配置 s3 = boto3.client('s3', aws_access_key_id='***', aws_secret_access_key='***') covid_text = requests.get('https://disease.sh/v3/covid-19/continents') data = covid_text.json() s3.put_object( Body=json.dumps(data), Bucket='my_bucket', # 新增.json后缀 Key='httpsGETdisease.sh/v3/covid-19/continents.json', # 显式指定内容类型为JSON ContentType='application/json' )
修改完成后重新上传,S3存储桶里的文件就会被正确识别为JSON格式,直接在控制台预览、或者通过链接访问时都能正常解析JSON结构。如果需要提升存储的JSON文件的可读性,可以将json.dumps(data)调整为json.dumps(data, indent=2, ensure_ascii=False),开启缩进的同时避免中文转码乱码。
内容的提问来源于stack exchange,提问作者user15995929
相关产品推荐
相关产品推荐

