gcloud ai-platform predict返回非JSON结果如何调整以获取JSON响应?
方案1:配置gcloud命令直接返回标准JSON
给调用命令加上--format=json全局参数即可强制输出JSON格式,调整后的命令为:
gcloud ai-platform predict --json-request instances.json --format=json
输出结果会是标准JSON结构,可直接用jq、Python等工具读取处理。
方案2:解析当前返回的非结构化结果
如果暂时无法调整调用命令,可通过以下两种方式处理现有返回内容:
- 文本工具快速转换
现有返回的第一行是表头,第二行第一列是VAL值,剩余部分是符合Python字典语法的结构,用awk、sed做简单转换即可得到标准JSON:
gcloud ai-platform predict --json-request instances.json \ | awk 'NR==2 {print substr($0, index($0, "{"))}' \ | sed "s/'/\"/g" > predict_result.json
- Python脚本直接解析
如果是在Python代码中调用该命令,可以直接用ast模块解析提取到的字典结构,避免正则匹配出错:
import subprocess import ast # 执行gcloud命令获取输出 cmd_output = subprocess.run( ["gcloud", "ai-platform", "predict", "--json-request", "instances.json"], capture_output=True, text=True ).stdout # 提取第二行的字典段 dict_content = cmd_output.splitlines()[1].split(maxsplit=1)[1] # 安全解析Python字典格式,无需转成JSON predict_result = ast.literal_eval(dict_content)
内容的提问来源于stack exchange,提问作者der_radler
相关产品推荐
相关产品推荐

