如何将cURL请求转换为Python请求

时间:2019-02-04 13:58:17

标签: python curl python-requests

我有一个正常运行的cURL请求。

curl http://localhost:5000/models/images/generic/infer.json -XPOST -F job_id='123' -F dont_resize='dont_resize' -F snapshot_epoch='100' -F image_file='@/home/hellouser/Downloads/infer/Users/User01/Images/tiles/999/00.jpg'`

我有一个python脚本,我想在其中执行相同的请求。但出现以下错误,

  

{   “错误”:{   “ message”:“'NoneType'对象没有属性'iteritems'”,   “ type”:“ AttributeError”   }   }

这是python代码,

import requests
data = {
    'job_id': '123',
    'dont_resize': 'dont_resize',
    'snapshot_epoch': '100',
    'image_file': '@/home/hellouser/Downloads/infer/Users/User01/Images/tiles/999/00.jpg'    }

url = 'http://localhost:5000/models/images/generic/infer.json'
r = requests.post(url=url, data=data)

任何想法如何正确转换代码?我应该在请求中通过file=file吗?

1 个答案:

答案 0 :(得分:1)

尝试一下:

data = {
    'job_id': '123',
    'dont_resize': 'dont_resize',
    'snapshot_epoch': '100',
}
files = {
    'image_file': open('/home/hellouser/Downloads/infer/Users/User01/Images/tiles/999/00.jpg', 'rb')
}

url = 'http://localhost:5000/models/images/generic/infer.json'
r = requests.post(url=url, data=data, files=files)