On Jan 20, 5:23 am, John Machin <sjmac...@lexicon.net> wrote: > On Jan 20, 12:54 pm, gert <gert.cuyk...@gmail.com> wrote: > > > How do you convert s back to binary data in python 3 so I can put in a > > sqlite blob ? > > Is there a build in function or do I need to use binascii ? > > byte(s) or bin(s) would make more sense but can not figure it out ? > > Can't imagine why you would do str(binary_data) especially if you want > it back again ... however:
def application(environ, response): s = str(environ['wsgi.input'].read()) b = compile('boundary=(.*)').search(environ['CONTENT_TYPE']).group (1) p = compile(r'.*Content-Type: application/octet-stream\\r\\n\\r\\n (.*)\\r\\n--'+b+'.*'+b+'--', DOTALL).match(s).group(1) db.execute('UPDATE users SET picture=? WHERE uid=?', (p,session.UID)) > According to the fabulous manual: > > str([object[, encoding[, errors]]]) > Return a string version of an object, using one of the following > modes: > [snip] > When only object is given, this returns its nicely printable > representation. For strings, this is the string itself. The difference > with repr(object) is that str(object) does not always attempt to > return a string that is acceptable to eval(); its goal is to return a > printable string. > > Hmm looks like (1) we need to do the dreaded eval() and (2) there's no > guarantee it will work. > > >>> for i in range(256): > > ... blob = bytes([i]) > ... if eval(str(blob)) != blob: > ... print(i, blob, str(blob), eval(str(blob))) > ... > > >>> # no complaints! > > Looks like it's going to work, but you better be rather sure that you > trust the source. Any other suggestions ? -- http://mail.python.org/mailman/listinfo/python-list