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

Synapse Notebook中%run魔法命令如何传递动态参数?

使用%run魔法命令在Synapse Notebook中动态传参的解决方法

问题核心:%run的参数必须是合法的JSON字符串,直接传递Python列表变量会被当作字面量解析,导致JSON解析失败。以下是两种可行的实现方式:

方法1:利用json.dumps生成标准JSON字符串

这是最可靠的方式,能处理包含特殊字符的场景:

import json
# 定义要传递的列表
bronze_notebook_names = ['NB_B2S_SNOW_Task', 'NB_B2S_Time_and_Resources_Task_Time']
# 将列表转为标准JSON格式字符串
exclude_str = json.dumps(bronze_notebook_names)

然后使用$符号引用变量传递参数:

%run "5 Bronze to silver/Daily/NB_B2S" { "exclude_bronze_notebook_names": $exclude_str }

方法2:字符串转换(简单场景适用)

如果列表内容无特殊字符,可直接将Python列表转为符合JSON格式的字符串:

bronze_notebook_names = ['NB_B2S_SNOW_Task', 'NB_B2S_Time_and_Resources_Task_Time']
# 把列表转为字符串后替换单引号为双引号,适配JSON格式
exclude_str = str(bronze_notebook_names).replace("'", '"')

同样用$引用变量执行%run:

%run "5 Bronze to silver/Daily/NB_B2S" { "exclude_bronze_notebook_names": $exclude_str }

错误原因说明

之前的写法直接传递变量名bronze_notebook_names,%run会将其当作普通文本解析,导致JSON结构不合法(变量名未被引号包裹),触发JsonReaderException。通过将变量转为标准JSON字符串,再用$引用传递,就能让%run正确解析参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:58:17