【问题标题】:Pycharm deletes quotation marks in paramenter fieldPycharm删除参数字段中的引号
【发布时间】:2021-04-10 14:33:52
【问题描述】:

我想使用 PyCharm 中的参数字段为 python 脚本设置参数。

我的配置:

但是运行控制台中的命令是:

python3 path_to_script.py '{app_id: picoballoon_network, dev_id: ferdinand_8c ... and so on

而不是:

python3 path_to_script.py '{"app_id": "picoballoon_network", "dev_id": "ferdinand_8c" ... and so on

基本上,它会删除参数中的所有"。 有谁知道如何关闭它?

我的 PyCharm 版本是:

PyCharm 2020.3.1 (Professional Edition)
Build #PY-203.6682.86, built on January 4, 2021
Runtime version: 11.0.9.1+11-b1145.37 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0

【问题讨论】:

    标签: python parameters pycharm escaping quotation-marks


    【解决方案1】:

    为避免引号被删除,请注意写入包含引号的参数的规则。

    运行/调试配置:Python

    Configuration tab

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

    • 使用空格分隔各个脚本参数。

    • 包含空格的脚本参数应使用双引号分隔,例如some" "param"some param"

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

    -s"main.snap_source_dirs=[\"pcomponents/src/main/python\"]" -s"http.cc_port=8189"
    -s"backdoor.port=9189"
    -s"main.metadata={\"location\": \"B\", \"language\": \"python\", \"platform\": \"unix\"}"
    

    问题中的情况是单个参数,让我们将规则应用于示例:

    '{"app_id": "picoballoon_network", "dev_id": "ferdinand_8c"'

    1. 因为它是一个包含空格的单个参数,所以必须用引号括起来。

    2. 由于参数的内容还包含引号,因此必须使用反斜杠 \ 对其进行转义。所以应用参数格式化规则给出:

    "'{\"app_id\": \"picoballoon_network\", \"dev_id\": \"ferdinand_8c\"}'"

    1. (旁注):在示例中,参数被Apostrophes包围,这可能是不必要的,并且可能需要稍后在您的Python代码中删除(下面的示例使用strip方法)。

    您可以使用这个简单的脚本对其进行测试:

    import sys
    import ast
    
    
    your_dictionary = ast.literal_eval(sys.argv[1].strip("'"))
    

    (旁注):您的示例参数是一个包含Python dictionary 的字符串,有几种方法可以转换它,在示例中我包含了这个问题的最高投票答案:@987654325 @

    使用的参数和测试代码截图:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2012-02-06
      • 2020-11-02
      • 2016-02-15
      相关资源
      最近更新 更多