Setting Drupal Image Field via Services, and image won't attach to node?
I'm late to the party, but I think you might be encoding the image wrongly. You need base64 encoding. Here is how encoding works on my end with Python 3.5.2:

import os, base64
size = os.path.getsize(filename)
filesize = os.stat(filename).st_size
filemime = mimetypes.guess_type(filename)
fd = open(filename, 'rb')
image_data = base64.b64encode(fd.read())
fd.close()