我遇到以下代码的问题:
!curl -X POST \
-H 'Content-Type':'application/json' \
-d '{"data":[[4]]}' \
http://0.0.0.0/score
如何将这段代码转换为Python函数或使用Postman?
答案 0 :(得分:1)
import requests
payload = {
"data": [[4]]
}
headers = {
'Content-Type': "application/json",
}
server_url = 'http://0.0.0.0/score'
requests.post(server_url, json = payload, headers = headers)
应该大致等同于您的curl命令。
否则,要将curl转换为Python命令,可以使用https://curl.trillworks.com/#python之类的工具。
邮递员可以方便地"import" tool来导入curl
这样的命令(将命令粘贴为原始文本)。
使用Postman的结果也可以是"exported" into Python code。
答案 1 :(得分:0)
最短的等效文件(带有requests
lib)如下所示:
import requests # pip install requests
r = requests.post("http://0.0.0.0/score", json={"data":[[4]]})
requests
将为此请求自动设置适当的Content-Type
标头。
请注意,请求标头仍会有所不同,因为curl
和requests
总是隐式设置自己的标头集。
您的curl
命令将发送以下标头集:
"Accept": "*/*",
"Content-Length": "8", # not the actual content length
"Content-Type": "application/json",
"Host": "httpbin.org", # for testing purposes
"User-Agent": "curl/7.47.0"
requests
标头将如下所示:
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.22.0",
"Content-Length": "8",
"Accept": "*/*",
"Content-Type": "application/json"
因此,您可以根据需要在User-Agent
关键字参数中手动指定headers=
标头。
但仍将使用压缩。