无法获取 json 键值

unable to Get json key value

我在下面有一个 python 代码来获取 json 键值,但我在下面。

import json
import datetime
import dateutil
import time
import os

secret = os.system("aws secretsmanager get-secret-value --secret-id stage_secret --query SecretString --output text")
print(secret)
data = (secret["username"])
print(data)

secret 的输出是 {"username":"user1","password":"psswd@123"}

我想提取 usernamepassword 的值并将其存储在一个变量中,但我遇到了以下错误

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    data = (secret["username"])
TypeError: 'int' object has no attribute '__getitem__'

请帮助实现同样的目标

Python Version Python 2.7.5

Output of secret is ...

不,不是。如果您参考 os.system() 文档,结果是命令的退出代码,它是一个 int。

如果要捕获输出,请使用 subprocess 模块

import subprocess
import json

secret_id = "stage_secret"  # do NOT store this in your source code 
output_mode = "text"
output = subprocess.check_output(["aws", "secretsmanager" , "get-secret-value", "--secret-id", secret_id, "--query", "SecretString", "--output", output_mode])

data = json.loads(output.strip())
print(data['username'])

不过,你真的应该consider using boto3