cURL запрос в Python с загрузкой json файла

Всем доброго дня! В питоне не силён, однако стоит задача, и нужно её решить.

Есть такая курла:

curl -viL --basic --user <AccessKey>:<SecretKey> \ -H "Accept: application/json" -d "@request.json" \ -POST "<EndPointURL>"

В командной строке выполняется успешно. Однако нужно как-то выполнить её в питоне, и я не особо понимаю как именно это сделать. Немного погуглив попробовал либу requests, однако при запросе возвращается 403 ошибка.

    auth = (self.access_key, self.secret_key)

    headers = {'Accept': 'application/json'}

    files = {'document': open(json_file, 'rb')}

    r = requests.post(method_url, files=files, auth=auth, headers=headers)

Направьте пожалуйста в правильную сторону. Возможно ли вообще подобный запрос выполнить через requests? Или придется ковырять какой-ниубдь pycURL? Может у кого найдутся примеры кода?

UPD Попробовал притвориться браузером - не помогло, результат тот же.

    auth = (self.access_key, self.secret_key)

    headers = {'Accept': 'application/json', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (K HTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}

    files = {'document': open(json_file, 'rb')}

    r = requests.post(method_url, files=files, auth=auth, headers=headers)

Ответы (1 шт):

Автор решения: Dmitry Filippov

Проблема решена. Косякнул, и передавал файл через параметр files. Конкретно в моём случае в курле файл передаётся в -d:

-d "@request.json"

То есть в requests его нужно было сразу в параметр data закидывать. Итоговый рабочий код:

    auth = (self.access_key, self.secret_key)

    headers = {
        'Accept': 'application/json'
    }

    data = open(json_file, 'rb')

    r = requests.post(method_url, data=data, auth=auth, headers=headers)
→ Ссылка