我在寫一個python腳本來自動化一些bash命令,並且在curl命令中傳遞一個變量時遇到了麻煩。這是我有:在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)
我想傳遞一個變量中的「名稱」參數,通過「someVariable」在這個例子中表示。但是,我得到一個錯誤,指出:
"message": "Failed to decode JSON object: Expecting ',' delimiter: line 1 column 14 (char 13):
當我與一個實際的字符串替換格式的一部分,腳本執行就好了,所以我知道我在做什麼毛病傳遞引號之間的變量,只是不確定正確的語法是什麼。
'call'需要字符串列表。請參閱文檔:https://docs.python.org/3/library/subprocess.html#subprocess.run –
不要試圖生成這樣的JSON;使用'json.dumps'。 – chepner