I am converting 2 MB of data as a string into a dict. The input is serialized in JSON.
Anyways I am currently using ast.literal_eval and I get the dictionary I want,
Yes, there's definitely a reason: eval() is evil. Your code might read untrusted data one day, an this would allow an attacker to run arbitrary code on your machine.
You shouldn't use ast.literal_eval() to decode JSON either. It cannot decode every valid JSON string and is not meant to be used for this purpose. Simply use json.loads(), it's reasonably fast.