【发布时间】:2019-03-10 21:49:47
【问题描述】:
在以下代码中:
>>> import pickle
>>>
>>> class Thing:
def __init__(self):
self.name = "stackoverflow"
self.age = 11
>>> a = pickle.dumps(Thing())
>>> a
b'\x80\x03c__main__\nThing\nq\x00)\x81q\x01}q\x02(X\x04\x00\x00\x00nameq\x03X\r\x00\x00\x00stackoverflowq\x04X\x03\x00\x00\x00ageq\x05K\x0bub.'
>>> str(a)
"b'\\x80\\x03c__main__\\nThing\\nq\\x00)\\x81q\\x01}q\\x02(X\\x04\\x00\\x00\\x00nameq\\x03X\\r\\x00\\x00\\x00stackoverflowq\\x04X\\x03\\x00\\x00\\x00ageq\\x05K\\x0bub.'"
我的问题是,如何将str(a) 转换回a,因为一旦发生转换,我可以使用pickle.loads() 轻松解码
我转换为字符串的原因是我希望将str(a) 字符串添加到另一个将被进一步“腌制”的字符串。我看到的大多数其他帖子都假设字节已经是字符串的编码或字符串到字节的转换,但都不是。
【问题讨论】:
-
只保留
a,不要给它分配任何其他东西,然后你就可以使用它了。 -
您可能无法安全地将另一个字符串添加到腌制对象字符串中。您想在这里实现什么目标?
标签: python python-3.x serialization pickle