将对象列表的字符串表示形式转换回python中的列表

时间:2015-04-20 02:42:54

标签: python string list object

我有一个已经字符串化的对象列表:

u'[<object: objstuff1, objstuff2>, <object: objstuff1, objstuff2>]'

我想将其转换回列表:

[<object: objstuff1, objstuff2>, <object: objstuff1, objstuff2>]

我尝试使用ast.literal_eval(),但不幸的是,如果元素是对象,它似乎不起作用,我得到SyntaxError

有什么方法可以将对象列表的字符串表示重新转换回列表吗?

1 个答案:

答案 0 :(得分:2)

您需要查看pickle模块才能执行此操作。

基本上,使用pickle.dumps转储对象,然后使用pickle.loads加载它们。

ast.literal_eval显然不起作用,因为有很多与对象相关的信息(如属性和值),这些信息根本没有在该字符串中捕获。另请注意,您将能够仅复活腌制数据,如果您现在只有那些字符串表示,您将无法通过它们创建对象,因为信息丢失。