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

如何从subprocess.run返回的JSON输出中提取id字段值

实现方案

你拿到的output.stdout是字符串格式的JSON内容,直接用Python内置的json模块把它转成字典,就能通过键名直接读取id字段的值,不需要装任何第三方库。

修改后的可运行代码

import subprocess
import json  # 引入Python内置的JSON处理模块

import_json_names = 'fileb://xxx/yyyy.json'

output = subprocess.run(
    ['aws', 'apigateway', 'import-rest-api', '--body', f'{import_json_names}', '--profile', 'xxxx'],
    capture_output=True,
    text=True,
    check=True
)
# 将JSON格式的字符串解析为Python字典
api_detail = json.loads(output.stdout)
# 读取id字段对应的值
api_id = api_detail["id"]
print(api_id)

执行上述代码后,会直接输出你需要的id值:123abc444

补充说明

  • 你之前定义的finaloutput中间变量不是必须的,解析时直接传入output.stdout即可
  • 代码里已经加了check=True参数,只要AWS CLI命令执行不报错,返回的stdout一定是合法JSON结构,正常解析不会出错;如果需要兼容命令执行失败的场景,可以在外层加try/except做异常捕获
  • 不要用正则匹配、字符串切片的方式提取id,这类写法非常脆弱,只要返回的JSON排版、字段顺序有调整就会失效,用标准JSON解析是稳定性最高的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 13:01:21