从 cmd python 将 dict 列表作为函数参数

从 cmd python 将 dict 列表作为函数参数

我正在尝试执行 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)

相关内容