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