将对象转换为str并返回到对象

时间:2011-01-19 13:23:28

标签: python string object

我有一个obj列表

[<DiffMatchPatch.patch_obj instance at 0x152a0b00>, <DiffMatchPatch.patch_obj instance at 0x152a0ab8>]

我后来将它们转换为strs - 然后我得到了

["@@ -797,44 +797,8 @@\n :  %0A\n-       print 'WithDrwaing %25d' %25 shs%0A\n     \n", "@@ -854,158 +854,4 @@\n e %0A%0A\n-'''%0Aif __name__ == '__main__': %0A       b=Transcations(amount=9) %0A       b.deposit() %0A       b.withdraw(2000) %0A       b.interest(30) %0A       b.chk()%0A'''%0A%0A%0A\n"]

是否可以将strs转换回对象?

2 个答案:

答案 0 :(得分:1)

你必须为此目的使用Pickle ......

from cPickle import dumps, loads

lst = [1,2,3]
pckld = dumps(lst)

print (pckld)
>> '(lp1\nI1\naI2\naI3\na.'

loads(pckld)
>> [1,2,3]

答案 1 :(得分:0)

虽然这不是你要求的,但也许“序列化”可以解决你的问题:

http://en.wikipedia.org/wiki/Serialization

http://docs.python.org/library/marshal.html

http://docs.python.org/library/pickle.html

此外,您可以考虑定义自己的__ str __函数和将从字符串中生成对象的构造函数(由__ str __创建)