Ich schreibe ein Python-Skript, um einige bash-Befehle zu automatisieren, und habe Probleme beim Übergeben einer Variablen innerhalb des curl-Befehls. Das ist, was ich habe:Hinzufügen von Variablen in Anführungszeichen in einem Python-Skript
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)
Ich versuche, eine Variable übergeben in die ‚name‘ Parameter, bezeichnet mit ‚somevariable‘ in diesem Beispiel. Aber ich bekomme einen Fehler, der besagt:
"message": "Failed to decode JSON object: Expecting ',' delimiter: line 1 column 14 (char 13):
Als ich das Format Teil mit einer tatsächlichen Zeichenfolge zu ersetzen, das Skript gerade fein ausgeführt, so weiß ich, ich mache etwas falsch mit Bestehen der Variable zwischen den Anführungszeichen, nur nicht sicher, was die richtige Syntax ist.
'call' nimmt eine Liste von Strings. Siehe die Dokumentation: https://docs.python.org/3/library/subprocess.html#subprocess.run –
Versuchen Sie nicht, JSON so zu erzeugen; benutze 'json.dumps'. – chepner