我正在尝试执行 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'}]
。任何建议都会有帮助
答案1
我遇到了同样的问题,将列表转换为 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)
答案2
看起来你不需要外壳。尝试
cmd = ["gunicorn", 'myapp:create([{key: ""}])', "--worker-class", "gevent", "-w", "1", "--bind", "127.0.0.1:8019"]
subprocess.call(cmd, shell=False)