Он отображается как неверный синтаксис, потому что у него неправильные скобки, поэтому вы можете сделать
ast.literal_eval(a.replace("[","{").replace("]", "}"))
или, в качестве альтернативы, самостоятельно проанализировать строку в словаре
{x.split(":")[0]: x.split(":")[1] for x in a[1:-1].split(",")}
и, если какупомянуто, что [
или ]
в других местах вашей строки, следующие могут быть более надежными
ast.literal_eval("{" + a[1:-1] +"}")