[英]Python subprocess using JSON dictionary as argument
我想传递一个JSON字典作为通过终端使用的参数subprocess
。 字典的结果与我手动通过终端传递时的结果不同。 我将此代码用于subprocess
:
subprocess.call("python ../power_supply_gui/PowerSupplyControl.py "+ "{\"CHANNEL\":\"d\",\"VOLT\":\"1\",\"CURRENTLIMIT\":\"1\",\"ENABLE\":\"1\"}",shell=True)
当我在另一个程序中阅读它时,我应该得到这个:
{"CHANNEL":"d","VOLT":"1","CURRENTLIMIT":"1","ENABLE":"1"}
但相反,我得到了这个:
{CHANNEL:d,VOLT:1,CURRENTLIMIT:1,ENABLE:1}
这是被调用的程序读取参数并输出它的方式:
print sys.argv[1]
print type(sys.argv[1])
commandDictionary=json.loads(sys.argv[1])
字典到 json 字符串的转换在冒号后放一个空格,这意味着空格前和空格后被分成不同的参数。 如果您希望此方法起作用,请尝试使用str(dictionary).replace(" ","")
作为参数删除空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.