私はいくつかのbashコマンドを自動化するpythonスクリプトを書いており、curlコマンドの中で変数を渡すことに問題があります。私は、この例では「someVariable」で示される「名前」パラメータのために変数を渡すようにしようとしているPythonスクリプトの中に変数を追加する
subprocess.call('''curl -H 'Content-Type: application/json' -X PUT -d '{"name": "{}".format(someVariable), "hive_ql": "CREATE VIEW user_balance AS SELECT NAME, LOB,ACCOUNT,BALANCE FROM csvtable"}' localhost:someport/api''', shell=True)
:これは私が持っているものです。しかし、私はというエラーを取得:
"message": "Failed to decode JSON object: Expecting ',' delimiter: line 1 column 14 (char 13):
私は実際の文字列にフォーマット部品を交換すると、スクリプトはので、私は、私はちょうど、引用符の間に変数を渡すと間違って何かをやっている知っているだけで罰金を実行します正しい構文が何であるか分かりません。
'call'は、文字列のリストを取ります。 docs:https://docs.python.org/3/library/subprocess.html#subprocess.runを参照してください –
このようなJSONを生成しないでください。 'json.dumps'を使います。 – chepner