Bash
將 dict 列表作為 cmd python 的函式參數
我正在嘗試執行 gunicorn 伺服器,我必須在其中傳遞 dict 列表作為輸入。但是當我發送空字元串作為值時,它被刪除了。我的命令是
import subprocess cmd = """gunicorn 'myapp:create([{key: ""}])' --worker-class gevent -w 1 --bind 127.0.0.1:8019""" subprocess.call([cmd], shell=True)
在 myapp 裡面
#myapp.py create(d_input): print(d_input) # OUT : [{key: }]
如您所見
''
,已消除,因此我無法解析列表和字典。有什麼辦法可以避免這種情況。我也嘗試過傳遞輸入,例如
[{key : 'Something'}]
在這種情況下輸出是[{key : Something}]
而我期望[{key : 'Something'}]
的。任何建議都會有所幫助
我遇到了將列表轉換為 json 的相同問題,為我解決了這個問題。
import subprocess cmd = """gunicorn 'myapp:create(json.dumps([{key: ""}]))' --worker-class gevent -w 1 --bind 127.0.0.1:8019""" subprocess.call([cmd], shell=True)
看起來您不需要外殼。嘗試
cmd = ["gunicorn", 'myapp:create([{key: ""}])', "--worker-class", "gevent", "-w", "1", "--bind", "127.0.0.1:8019"] subprocess.call(cmd, shell=False)