【发布时间】:2021-12-11 17:04:58
【问题描述】:
我正在尝试在 PowerShell 中使用 Databricks CLI。我需要传递 JSON 字符串作为参数。
我有两个变量 - job_id 等于 10 和 parameterValue 等于 some string。
我使用了 4 种不同的组合,但仍然收到 Error: JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) 的错误
使用的代码:
databricks jobs run-now --job-id $job_id --notebook-params "{""parameterName"":""$parameterValue""}"
databricks jobs run-now --job-id $job_id --notebook-params "{`"parameterName`":`"$parameterValue`"}"
databricks jobs run-now --job-id $job_id --notebook-params '{"parameterName":"$parameterValue"}'
【问题讨论】:
-
第一个不起作用,因为转义
"是用反引号字符完成的。第三个不起作用,因为$parameterValue括在反引号字符中时不会扩展为其值。仍然是第二个,试试$("{`"parameterName`":`"$parameterValue`"}")或"{`"parameterName`":`"$($parameterValue)`"}"。 -
"期望用双引号括起来的属性名称" .. 我怀疑这是所有情况下的错误消息,因为有些显然满足这个要求。您是否还遇到其他错误?您是否尝试过不扩展的简单文字字符串来缩小问题范围?
-
PowerShell 7.1 的可悲现实是,在传递给 的参数中需要一个 额外的手动 层
\-转义嵌入的"字符外部程序。这可能在 7.2 中得到修复,可能需要选择加入。有关详细信息,请参阅链接副本的 this answer。
标签: python powershell databricks databricks-cli