我想使用 PyCharm 中的参数字段为 python 脚本设置参数。
我的配置:
但运行控制台中的命令是:
python3 path_to_script.py '{app_id: picoballoon_network, dev_id: ferdinand_8c ... and so on
and not:
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
配置选项卡 https://www.jetbrains.com/help/pycharm/run-debug-configuration-python.html#1
指定脚本参数时,请遵循以下规则:
-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"'
-
因为它是包含空格的单个参数,所以必须用引号引起来。
-
由于参数的内容还包含引号,因此必须使用反斜杠对其进行转义\
。因此应用参数格式化规则给出:
"'{\"app_id\": \"picoballoon_network\", \"dev_id\": \"ferdinand_8c\"}'"
-
(边注):在示例中,参数被包围撇号 https://en.wikipedia.org/wiki/Apostrophe,这可能是不必要的,并且可能必须稍后在您的 Python 代码中删除(下面的示例使用strip https://docs.python.org/3/library/stdtypes.html?highlight=strip#str.strip方法)。
您可以使用这个简单的脚本来测试它:
import sys
import ast
your_dictionary = ast.literal_eval(sys.argv[1].strip("'"))
(边注):您的示例参数是一个包含Python字典 https://docs.python.org/3/tutorial/datastructures.html#dictionaries,有多种方法可以对其进行转换,在示例中我包含了此问题中得票最高的答案:“将字典的字符串表示形式转换为字典?” https://stackoverflow.com/q/988228/10794031
显示使用中的参数和测试代码的屏幕截图:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)