簡體   English   中英

使用 JSON 字典作為參數的 Python 子進程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM