Как преобразовать запрос cURL в запрос Python

У меня есть запрос 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 в запросе?

Вставьте минимальный рабочий код

Melon 04.02.2019 14:59

Вам может быть полезен этот сайт: curl.trillworks.com

fordy 04.02.2019 14:59

@fordy спасибо, я уже пробовал. Вывод оттуда (trillworks) все еще выдавал ошибки, когда я отправлял его из Python.

Mujeeb 04.02.2019 15:01

@Melon, чего не хватает в коде? Я проверю, нужно ли это добавить.

Mujeeb 04.02.2019 15:02

похоже, что путь в вашем бэкэнде на что-то жалуется, поэтому вам нужно опубликовать фрагмент кода, который имеет дело с iteritems, похоже, что вы работаете с python 2.x, вы можете пометить его как таковой

gold_cy 04.02.2019 15:03

Вот в чем проблема... У меня нет (и не может) доступа к внутреннему коду. Целый день я занимался поисками и испытаниями, но безрезультатно.

Mujeeb 04.02.2019 15:04

Для начала см. stackoverflow.com/a/54143121/476

deceze 04.02.2019 15:05

Например, импорт @Mujeeb отсутствует

Melon 05.02.2019 08:57

Добавил. Спасибо.

Mujeeb 05.02.2019 09:12
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
9
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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)

Спасибо. Я пробовал это, но раньше это не сработало (не помню ошибку). Но после этого много кода изменилось, я попробую еще раз и дам вам знать (позже).

Mujeeb 04.02.2019 15:08

Хорошо @Mujeeb, просто запомни, имя параметра files

Rafael Acorsi 04.02.2019 15:10

Не следует ли открывать файл только с помощью r вместо rb для Python 3?

Mujeeb 05.02.2019 08:54

использовать rb для двоичного

Rafael Acorsi 06.02.2019 00:29

Спасибо. Подробный ответ нашел здесь, stackoverflow.com/a/9644285

Mujeeb 06.02.2019 06:18

Другие вопросы по теме