cmd pythonの関数引数としてdictリストを渡す

cmd pythonの関数引数としてdictリストを渡す

dictリストを入力として渡す必要があるGunicornサーバーを実行しようとしています。ただし、空の文字列を値として送信すると削除されます。私のコマンドは

import subprocess
cmd = """gunicorn 'myapp:create([{key: ""}])' --worker-class gevent -w 1 --bind 127.0.0.1:8019"""
subprocess.call([cmd], shell=True)

マイアプリの内部

#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)

おすすめ記事