It seems to work perfectly thanks a lot Bussiere Google Fan boy
On Thu, Sep 2, 2010 at 7:32 AM, alex23 <wuwe...@gmail.com> wrote: > bussiere bussiere <bussi...@gmail.com> wrote: >> it's just as it seems : >> i want to know how does ti works to get back an object from a string in >> python : >> pickle.loads("""b'\x80\x03]q\x00(K\x00K\x01e.'""") #doesn't work > > Repeating the question without providing any further information > doesn't really help. > > This is a byte string: b'\x80\x03]q\x00(K\x00K\x01e.' > As MRAB points out, you can unpickle a byte string directly. > > This is a doc string: """note the triplet of double quotes""" > What you have is a doc string that appears to contain a byte string: > """b'\x80\x03]q\x00(K\x00K\x01e.'""" > > So the question for you is: what is putting the byte string inside of > a doc string? If you can stop that from happening, then you'll have a > byte string you can directly unpickle. > > Now, if you _don't_ have control over whatever is handing you the dump > string, then you can just use string manipulation to reproduce the > byte string: > >>>> dump = """b'\x80\x03]q\x00(K\x00K\x01e.'""" >>>> badump = dump[2:-1].encode()[1:] >>>> pickle.loads(badump) > [0, 1] > > So: > - dump[2:-1] strips off string representation of the byte string > (b'...') > - .encode() turns it into an actual byte string > - [1:] strips a unicode blank from the start of the byte string (not > entirely sure how that gets there...) > > After that it should be fine to unpickle. > > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list