Я бы использовал shelve
, json
, yaml
или что-то еще, как подсказывают другие ответы.
shelve
особенно круто, потому что вы можете иметь dict
на диске и по-прежнему использовать его. Значения будут загружаться по требованию.
Но если вы действительно хотите разобрать текст dict
, и он содержит только str
ings, int
s и tuple
s, как вы показали, вы можете использовать ast.literal_eval
чтобы разобрать его. Это намного безопаснее, поскольку вы не можете использовать полные выражения с ним - он работает только с str
, числами, tuple
с, list
с, dict
с, bool
eans и None
>>> import ast
>>> print ast.literal_eval("{12: 'mydict', 14: (1, 2, 3)}")
{12: 'mydict', 14: (1, 2, 3)}