В некоторых последних версиях Python вы можете использовать ast.literal_eval
, что по сути является eval без проблем с безопасностью. Вы могли бы также попытаться выполнить синтаксический анализ самостоятельно (или использовать синтаксический анализатор Python, а затем повторить логику literal_eval
перед вычислением AST), хотя оба являются переосмыслением колеса, и последнее, вероятно, гораздо менее надежно, как только как доходит до строковых литералов.
Зачем тебе это все равно? Существуют форматы сериализации, которые могут обрабатывать преобразование в и из строки различных структур данных (не только списков строк), например, Pickle (несколько небезопасно само по себе, прочитайте уведомление в документации), JSON , YAML и, возможно, больше. Они гораздо надежнее и подходят для таких задач.