使用json字典作为参数

时间:2017-07-21 17:35:11

标签: python json dictionary subprocess

我试图通过终端使用子进程传递一个json字典作为参数。字典总是与我手动通过终端传递时不同。我正在使用此代码进行子流程

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,使能:1}

这是被调用的程序正在读取参数并输出它

的方式
print sys.argv[1]
print type(sys.argv[1])
commandDictionary=json.loads(sys.argv[1]) 

1 个答案:

答案 0 :(得分:2)

将字典转换为json字符串会在冒号后面添加一个空格,这意味着在空格之前和空格之后将其拆分为不同的参数。如果您希望此功能正常,请尝试使用str(dictionary).replace(" ","")删除空格 作为论点。