from cgi import FieldStorage from io import BytesIO def parse_into_field_storage(fp, ctype, clength): fs = FieldStorage( fp=fp, environ={'REQUEST_METHOD': 'POST'}, headers={ 'content-type': ctype, 'content-length': clength }, keep_blank_values=True ) form = {} files = {} for f in fs.list: if f.filename: files.setdefault(f.name, []).append(f) else: form.setdefault(f.name, []).append(f.value) return form, files def handler(event, context): body_file = BytesIO(bytes(event["body"], "utf-8")) form, files = parse_into_field_storage( body_file, event['headers']['content-type'], body_file.getbuffer().nbytes ) print(form) print(files) return { "statusCode": 200, "body": json.dumps({}) }