全部产品
Search
文档中心

函数计算:输出结果

更新时间:Jul 21, 2026

Code Interpreter 的执行结果同时包含日志、表达式结果、富结果和错误信息。业务侧应分别处理这些字段,不要只读取 stdout。

结果结构

字段说明
execution.logs.stdoutprint() 或标准输出内容。
execution.logs.stderr标准错误内容。
execution.text最后一个裸表达式的文本展示。
execution.results富结果列表,可包含文本、表格等结构化结果。
execution.error运行时报错。成功时为空。
execution.execution_count / execution.executionCount当前上下文内的执行序号。

读取 stdout 和 stderr

execution = sandbox.run_code("""
import sys

print("hello")
print("warning", file=sys.stderr)
""")

stdout = "".join(execution.logs.stdout or [])
stderr = "".join(execution.logs.stderr or [])

print(stdout.strip())
print(stderr.strip())

TypeScript 示例:

const execution = await sandbox.runCode(`
import sys

print("hello")
print("warning", file=sys.stderr)
`);

const stdout = execution.logs.stdout.join("");
const stderr = execution.logs.stderr.join("");

console.log(stdout.trim());
console.log(stderr.trim());

读取表达式结果

execution = sandbox.run_code("1 + 1")
print(execution.text)

TypeScript 示例:

const execution = await sandbox.runCode("1 + 1");
console.log(execution.text);

execution.text 适合展示简单文本结果。表格可从 execution.results 中读取;图表应保存为文件后通过 Filesystem 取回。

读取富结果

execution = sandbox.run_code("""
import pandas as pd

df = pd.DataFrame({"month": ["2026-01", "2026-02"], "revenue": [120, 180]})
df
""")

for result in execution.results:
    if getattr(result, "text", None):
        print(result.text)

TypeScript 示例:

const execution = await sandbox.runCode(`
import pandas as pd

df = pd.DataFrame({"month": ["2026-01", "2026-02"], "revenue": [120, 180]})
df
`);

for (const result of execution.results) {
  if (result.text) {
    console.log(result.text);
  }
}

不同 SDK 版本对 Result 对象的字段暴露方式可能不同。接入时应先打印一次 execution.results,确认当前 SDK 返回的字段名。

处理错误

execution = sandbox.run_code("raise ValueError('bad input')")

if execution.error:
    print(execution.error.name)
    print(execution.error.value)
    print(execution.error.traceback)

TypeScript 示例:

const execution = await sandbox.runCode("raise ValueError('bad input')");

if (execution.error) {
  console.log(execution.error.name);
  console.log(execution.error.value);
  console.log(execution.error.traceback);
}

execution.error 对象包含以下字段:

字段说明
execution.error.nameSDK 封装后的错误类型名称,不一定等于原始 Python 异常类名(例如,ValueError 可能被封装为 ExecutionError)。
execution.error.value错误摘要信息,可能包含调用栈内容,不一定等于异常构造参数(例如,'bad input')。
execution.error.traceback完整调用栈字符串,包含原始异常类型和消息,是获取错误详情的可靠来源。

如需获取原始异常类型或错误消息,建议从 execution.error.traceback 中解析(例如提取最后一行的 ExceptionType: message 格式),而不要依赖 namevalue 字段做精确的类型匹配。

使用建议

  • 面向用户展示结果时,区分 stdout、表达式结果、富结果和错误。

  • 对 Agent 场景,把 execution.error 作为重试或修正代码的输入。

  • 表格优先使用 execution.results;图表和报告文件写入 Sandbox 后通过 Filesystem 下载。