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

Azure DevOps Pipeline中PythonScript@0传递JSON参数失败求助

解决Azure DevOps Pipeline中PythonScript任务传递JSON参数的问题

你遇到的问题根源是shell会将参数中的空格解析为参数分隔符,导致原本的JSON字符串被拆分成多个独立参数,sys.argv[1]只能拿到第一个空格前的片段{arg1:。以下是两种可行的解决方法:

方法1:直接转义并包裹JSON字符串

在Pipeline的arguments字段中,用双引号将整个JSON字符串包裹,同时转义JSON内部的双引号,确保shell将其识别为单个参数:

- task: PythonScript@0
  inputs:
    scriptSource: 'filePath'
    scriptPath: '$(workingDir)/test.py'
    arguments: '"{\"arg1\": \"value1\", \"arg2\": \"value2\"}"'

对应的Python代码修改为:

import sys
import json

if __name__ == "__main__":
    json_param = sys.argv[1]
    data = json.loads(json_param)
    print(data["arg1"])  # 输出 value1
    print(data["arg2"])  # 输出 value2

方法2:使用Pipeline变量传递(更易维护)

先在Pipeline中定义包含JSON的变量,传递时用双引号包裹变量,避免直接转义的繁琐:

variables:
  jsonArguments: '{"arg1": "value1", "arg2": "value2"}'

- task: PythonScript@0
  inputs:
    scriptSource: 'filePath'
    scriptPath: '$(workingDir)/test.py'
    arguments: '"$(jsonArguments)"'

Python代码与方法1一致,即可正常解析JSON参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:07:35