Python: curl -d json 没有撇号将无法工作

Python: curl -d json will not work without apostrophe

我必须以那种形式准确发送 curl 才能在 cli 中得到响应

curl -d '{"id":0,"params":["aa:aa:00:00:00:00",["mixer","volume","80"]],"method":"slim.request"}' http://localhost:9000/jsonrpc.js
curl -d '{"id":0,"params":["aa:aa:00:00:00:00",["playlist","play","/home/pi/mp3/File.mp3"]],"method":"slim.request"}' http://localhost:9000/jsonrpc.js

运行 我的脚本中上面的命令,我得到一个撇号的语法错误

  File "./updateTimers.py", line 126
    strVolume = curl -d '{"id":0,"params":["aa:aa:00:00:00:00",["mixer","volume","80"]],"method":"slim.request"}' http://localhost:9000/jsonrpc.js
                                                                                                                                 ^
SyntaxError: invalid syntax

如果我更改撇号和引号,那么我的 python 脚本也不喜欢语法。会很高兴任何建议。至少我需要 运行 一个一个地执行这两个命令。

strVolume = curl -d '{"id":0,"params":["aa:aa:00:00:00:00",["mixer","volume","80"]],"method":"slim.request"}' http://localhost:9000/jsonrpc.js
strPlayMP3Command = curl -d '{"id":0,"params":["aa:aa:00:00:00:00",["playlist","play","/home/pi/adhan/mp3/Adhan-Makkah.mp3"]],"method":"slim.request"}' http://localhost:9000/jsonrpc.js

如果我对你的问题理解正确,你希望 curl -d ... 成为 Python 中的字符串。为此,您还必须将 curl 括在引号中:strVolume = "curl -d '{\"id\": 0, ...}' ..."。确保转义里面的引号。