【问题标题】:Passing a JSON as a parameter from the run configuration in PyCharm从 PyCharm 的运行配置中传递 JSON 作为参数
【发布时间】:2021-05-16 00:49:10
【问题描述】:

谁能告诉我如何从运行配置的参数字段中将 JSON 作为脚本参数传递?

我正在尝试传递这个 JSON:

{"beam":5,"max_len_a":1.2,"max_len_b":10}

试过了:

'{"beam":5,"max_len_a":1.2,"max_len_b":10}'
"{"beam":5,"max_len_a":1.2,"max_len_b":10}"
\"{"beam":5,"max_len_a":1.2,"max_len_b":10}\"
"{\"beam\":5,\"max_len_a\":1.2,\"max_len_b\":10}"

全部失败。

【问题讨论】:

  • 你好,你看到答案了吗?

标签: python json parameters pycharm escaping


【解决方案1】:

在问题中传递示例参数相对简单。唯一适用的规则是引号 (") 必须使用反斜杠 (\") 进行转义。有关应用更多规则的更复杂示例,请参阅Pycharm deletes quotation marks in paramenter field

运行/调试配置:Python

Configuration tab

指定脚本参数时,请遵循以下规则:

(...)

  • 如果脚本参数包含双引号,用反斜杠转义双引号,

所以示例 JSON 字符串:

{"beam":5,"max_len_a":1.2,"max_len_b":10}

应该写成:

{\"beam\":5,\"max_len_a\":1.2,\"max_len_b\":10}

然后您可以使用脚本轻松地将参数转换为 JSON 对象

import json
import sys

your_string = sys.argv[1]
z = json.loads(your_string)

以下屏幕截图显示了运行配置:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2018-08-10
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多