python - 如何使用 Shelex 将变量传递给 curl 命令
问题描述
我在 python 中使用下面的 curl 命令,并且我能够成功运行它。但我想将身份验证 ID 和租户 ID 存储在一个变量中,然后在 curl 命令中使用该变量。请让我知道我该怎么做。先感谢您。
import shlex
auth_id = 'test'
tenant_id = 'testt'
cmd = '''curl -X POST -i -u auth_id@tenant:password -H 'Content-Type:
application/json' -d '{"rotate": 23.07, "pressure": 45.85}'
http://localhost:8080/telemetry'''
args = shlex.split(cmd)
process = subprocess.Popen(args, shell=False,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
解决方案
您可以改用 pycurl:
import pycurl
import json
headers = ['Content-Type: application/json']
data = json.dumps({"rotate": 23.07, "pressure": 45.85})
credentials = 'username:password'
p = pycurl.Curl()
p.setopt(pycurl.POST, 1)
p.setopt(pycurl.HTTPHEADER, headers)
p.setopt(pycurl.POSTFIELDS, data)
p.setopt(pycurl.VERBOSE, True)
p.setopt(pycurl.USERPWD, credentials)
pass_url=str("http://localhost:8080/")
p.setopt(pycurl.URL, pass_url)
p.perform()
p.close()
推荐阅读
- python - 使用逗号分隔符将带有列表的列拆分为单独的列,而不指定列名
- docker - 用于 ubuntu docker 容器的 Shellinabox
- reactjs - oidc-client 的自定义 React Hooks 不会在第二次渲染时触发
- asp.net-mvc - 为什么控制器方法被调用两次?ASP.NET MVC
- c++ - 将从字符串中以'#'开头的单词提取到字符串流中-C++
- tensorflow - 使用 TF hub 中保存的模型提取特征向量
- huawei-mobile-services - Huawei App Signing 应用程序,我必须打开 CLI 然后转到 JDK 目录
- html - 有没有办法设置 Dash 数据表的 row_selectable Checkboxes 标题和位置?
- linux - 确定窗框控件位置的标准方法
- c# - 参数在 PlayMode 中消失(Unity)