Python:将带有namedofuple的unicode的字符串形式转换为namedtuple

时间:2018-06-07 16:52:50

标签: python string namedtuple

我有一个namedtuple定义如下:

Job = namedtuple("Job", ['name', 'type', 'status', 'ended', 'id', 'baseMetaPath', 'updated', 'archiveUnarchive'])

我有一个存储在我试图加载的文件中的namedtuples列表。我已将列表分成每个作业对象,但该对象仍然是一个字符串。我想将字符串转换为namedtuple对象。字符串如下:

"Job(name=u'MyJob', type=u'datamart', status=u'complete', ended=152717815282, id=u'2001840', baseMetaPath=u'/datamarts/2001546', updated=1527178152000, archiveUnarchive=0)"

注意字符串中的unicode。

有没有办法直接将此字符串转换为Job namedtuple类型对象,或者我是否必须手动完成,解析字符串并自行完成?

1 个答案:

答案 0 :(得分:1)

您需要使用eval(),请按照官方文档https://docs.python.org/3/library/functions.html#evalhttps://docs.python.org/3/library/functions.html#exec

x = 1
eval('x+1')

根据您的要求

eval("Job(name=u'MyJob', type=u'datamart', status=u'complete', ended=152717815282, id=u'2001840', baseMetaPath=u'/datamarts/2001546', updated=1527178152000, archiveUnarchive=0")