我有一个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类型对象,或者我是否必须手动完成,解析字符串并自行完成?
答案 0 :(得分:1)
您需要使用eval(),请按照官方文档https://docs.python.org/3/library/functions.html#eval或https://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")