Python Ready | Программирование

@python_ready
Фото Хотите превратить строку в объект без риска выполнить произвольный код? Python даёт встроенный парсер литералов — ast.literal_eval(). Попробуйте: import ast safe = ast.literal_eval("{'a': 1, 'b': [2, 3]}") print(safe) Работает со списками, словарями, числами, строками и вложенными структурами, но никогда не выполняет код. Например, строка: ast.literal_eval("__import__('os').system('rm -rf /')") Поднимет ValueError/SyntaxError — код не выполнится. Можно безопасно парсить строковые данные из конфигов, входных параметров, CLI, API, логов: params = ast.literal_eval("[10, 20, 30]") Пригодится, когда нужно принимать данные, но не хочешь словить RCE или неожиданный код в eval(). Python Ready | #совет
Если у вас установлено приложение,
вы можете сразу перейти в канал