У меня есть запрос 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, в котором я хочу выполнить тот же запрос. Но я получаю следующую ошибку,
{ "error": { "message": "'NoneType' object has no attribute 'iteritems'", "type": "AttributeError" } }
Вот код питона,
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 в запросе?
Вам может быть полезен этот сайт: curl.trillworks.com
@fordy спасибо, я уже пробовал. Вывод оттуда (trillworks) все еще выдавал ошибки, когда я отправлял его из Python.
@Melon, чего не хватает в коде? Я проверю, нужно ли это добавить.
похоже, что путь в вашем бэкэнде на что-то жалуется, поэтому вам нужно опубликовать фрагмент кода, который имеет дело с iteritems, похоже, что вы работаете с python 2.x, вы можете пометить его как таковой
Вот в чем проблема... У меня нет (и не может) доступа к внутреннему коду. Целый день я занимался поисками и испытаниями, но безрезультатно.
Для начала см. stackoverflow.com/a/54143121/476…
Например, импорт @Mujeeb отсутствует
Добавил. Спасибо.






Попробуй это:
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)
Спасибо. Я пробовал это, но раньше это не сработало (не помню ошибку). Но после этого много кода изменилось, я попробую еще раз и дам вам знать (позже).
Хорошо @Mujeeb, просто запомни, имя параметра files
Не следует ли открывать файл только с помощью r вместо rb для Python 3?
использовать rb для двоичного
Спасибо. Подробный ответ нашел здесь, stackoverflow.com/a/9644285
Вставьте минимальный рабочий код