Python: преобразовать строковую форму с помощью юникода namedtuple в namedtuple - PullRequest
0 голосов
/ 07 июня 2018

У меня есть именованный кортеж, определенный следующим образом:

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

У меня есть список именованных кортежей, которые хранятся в файле, который я пытаюсь загрузить.Я разделил список на каждый объект задания, но объект все еще является строкой.Я хочу преобразовать строку в объект namedtuple.Строка имеет следующий вид:

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

Обратите внимание на Юникод внутри строки.

Есть ли способ напрямую преобразовать эту строку в объект типа именованный набор заданий, или мне нужно вручнуюпройти, разобрать строку и сделать это сам?

1 Ответ

0 голосов
/ 07 июня 2018

Вам необходимо использовать 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")
...