You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 2.7调用aws secretsmanager获取密钥后提取JSON键值报错求助

问题解决:Python2.7调用awscli获取secretsmanager密钥并解析JSON

错误原因

  • os.system()的返回值是命令执行的退出状态码(整数类型,0代表执行成功,非0代表失败),而非命令的标准输出内容。你打印时看到的JSON字符串是aws命令直接输出到控制台的内容,并没有存入secret变量,所以尝试对int类型的secret取键时触发类型错误。
  • 即使拿到了命令输出的字符串,也需要先调用json.loads()把JSON字符串反序列化为Python字典,才能按键取值。

可行实现方案(适配Python2.7.5)

使用subprocess.check_output()获取命令的标准输出,再做JSON解析即可:

import json
import subprocess

# 获取aws命令的标准输出,strip清除末尾换行等空白字符
secret_str = subprocess.check_output(["aws", "secretsmanager", "get-secret-value", "--secret-id", "stage_secret", "--query", "SecretString", "--output", "text"]).strip()
# 反序列化JSON字符串为Python字典
secret_dict = json.loads(secret_str)

# 提取字段存入变量
username = secret_dict["username"]
password = secret_dict["password"]

print(username)
print(password)

注意事项

  • 如果aws命令存在执行失败的可能,可在外层加try except捕获subprocess.CalledProcessError异常做容错处理
  • 确保运行脚本的环境已配置好awscli的对应权限,可正常调用secretsmanager相关接口

内容的提问来源于stack exchange,提问作者Jijo John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:27:04