Convertir solicitud cURL a solicitud de Python-Requests

Quiero convertir esta solicitud de CURL a una solicitud de Python-Requests ya que estoy trabajando en un contenedor de Python para un servicio REST

MS_WORD_DOCUMENT=... CONTENT_TYPE="application/msword" JSON_REQUEST="{\"documentType\" : \"$CONTENT_TYPE\"}" curl -X POST -F "meta=$JSON_REQUEST;type=application/json" -F "data=@$MS_WORD_DOCUMENT" $SERVICE_ENDPOINT 

¿Cómo puedo convertir esto en una solicitud de biblioteca de Python3 Requests?

Hasta ahora tengo que

 data = {"metadata": {"documentType": "application/msword", "Content-Type": "application/json"}} req = requests.post( "https://text.s4.ontotext.com/v1/twitie", auth=("user", "pass"), headers={"Content-Type": "multipart/mixed"}, data=data, files={"file": ("sample.docx", content, "application/octet-stream")}) 

No sé si esa es la manera de procesar solicitudes multiparte del tipo con solicitudes

El comando Curl envía nombres de campos de multipart/form-data específicos; meta y data , y la documentación de la API especifica los meta-tipos específicos que se utilizarán.

Además, los metadatos deben estar codificados a JSON.

Lo siguiente debería funcionar:

 import json import requests metadata = json.dumps({"documentType": "application/msword"}) files = { 'meta': ('', metadata, 'application/json'), 'data': ('sample.docx', content, 'application/octet-stream'), } req = requests.post( "https://text.s4.ontotext.com/v1/twitie", auth=("user", "pass"), files=files) 

El parámetro de files es todo lo que se necesita aquí; cada valor es una tupla con un nombre de archivo, los datos que se enviarán y el tipo MIM para esa parte.

Un buen recurso que he usado para convertir una solicitud de cURL a solicitudes de Python es curlconverter . Puede ingresar su solicitud de CURL y la formateará para las requests Python.

Como nota al margen, también se puede convertir para PHP y Node.js.