analisar dados de várias partes / formulário, recebidos de pedidos postados

Estou escrevendo o Web Service Client, usando a biblioteca de solicitações. Estou recebendo dados em multipart / form-data que contém um arquivo e um texto-json. Não tenho ideia de como analisá-lo. Existe uma biblioteca apropriada para analisar o formato multipart / data-form em python ou devo escrever o analisador sozinho?

meu código:

data = {
  "prototypeModel" :('prototypeModel', open(prototypeModel, 'rb'), 'application/octet-stream', {'Expires': '0'}),
  "mfcc_1" : ('mfcc', open(mfcc_1, 'rb'), 'application/octet-stream', {'Expires': '0'}),
  "mfcc_2" : ('mfcc', open(mfcc_2, 'rb'), 'application/octet-stream', {'Expires': '0'}),
  "mfcc_3" : ('mfcc', open(mfcc_3, 'rb'), 'application/octet-stream', {'Expires': '0'}),
}

print( '---------------------- start enroll ----------------------')
testEnrollResponse = requests.post(server+sessionID, files = data, json = declaredParameters)

b '\ r \ n - c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r \ nDisposição de conteúdo: dados do formulário; nome = "playbackHash" \ r \ nTipo de conteúdo: application / octet-stream \ r \ n \ r \ n \ x16 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00serialization :: archive \ n \ x00 \ x04 \ x08 \ x04 .... x00 \ x00R \ x94 \ x9bp \ x8c \ x00 \ r \ n - c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r \ nDisposição de conteúdo: dados do formulário; nome = "usersMFCC" \ r \ nTipo de conteúdo: application / octet-stream \ r \ n \ r \ n \ x16 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00serialization :: archive \ n \ x00 \ x04 \ x08 \ x04 \ x08 \ x01 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ xf8 \ x16 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00u \ xbd \ xb4 / \ xda1 \ xea \ xbf \ x0f \ xed \ xa2 <\ xc9 \ xf8 \ xe7 \ xbf? \ xd5 \ xf06u \ xe7 \ xf0 \ xbf \ xd4 \ x8d \ xd4 \ xa1F \ xbe \ x03 @ \ x85X! \ x19 \ xd8A \ x06 @ \ x8co \ xf7 \ r .....
x80 \ xd9 \ x95Yxn \ xd0? \ r \ n - c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r \ nDisposição de conteúdo: dados do formulário; nome = "scoreAndStatus" \ r \ nTipo de conteúdo: application / json; charset = utf-8 \ r \ n \ r \ n {"lexLikelihood": 1.544479046897232, "overallScore": - nan, "playbackLikelihood": - inf, "status": {"errorCode": 0, "errorMessage": " "}} \ r \ n - c00750d1-8ce4-4d29-8390-b50bf02a92cc - \ r \ n '

Substituí mais dados binários por "....."

questionAnswers(2)

yourAnswerToTheQuestion