将curl命令转换为python

2024-06-26 02:58:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手。我正在尝试使用子进程将下面的bash脚本命令转换为Python。在执行Python脚本时,我没有得到任何输出,也没有看到任何失败。在

这是需要移植到Python的bash命令。在

curl -u 'lawn:oldlawn!' -k -s -H 'Content-Type: application/json' -X GET 'https://192.168.135.20:443/api/json/v2/types/dev-objs/1'

我的python代码:

^{pr2}$

在我执行get_curl()之后,print stdout和{}不打印任何内容,尽管dev-objs/1存在。在

当我执行与bash命令相同的命令时,它可以工作,并且可以看到restapi输出。在

有谁能帮我一下这里出了什么问题吗?谢谢


Tags: dev命令脚本bashjsongetapplication进程
2条回答

使用^{}将使您的http(s)请求简单得多:

import requests


response = requests.get('https://192.168.135.20:443/api/json/v2/types/dev-objs/1', 
                        verify=False, auth=('lawn', 'oldlawn!'))
print response.json()

您可以使用requests

headers = {
    'Content-Type': 'application/json',
}


import requests

proxies = {
  'https': 'https://lawn:oldlawn!@192.168.135.20:443',
}

req = requests.get('https:...', proxies=proxies, verify=False, headers=headers)

我不认为请求有-s标志,因为除非打印返回的req.json文件()。在

我以为你的大写字母U不是u,所以你真正需要做的就是使用basic-authentication传递auth = (user, pass),按照Brendans answer设置{}。在

为什么你的子进程代码不起作用是因为你有一些参数被引用,如"'lawn:oldlawn!'",你想要的是:

^{pr2}$

相关问题 更多 >