Лучшие практики Python

Почему вы должны распарить свой проект Python

Примеры, показывающие, когда использовать рассол вместо JSON и когда травление опасно!

Рассол решает проблемы:

Ничто так не ранит, как быть забытым. Как разработчик, вы несете ответственность за то, чтобы предоставить пользователям приятный опыт и следить за тем, чтобы они не забывались вашим приложением каждый раз, когда они уходят.

Pickle предлагает простой способ запомнить. С помощью этого модуля вы можете сериализовать свои данные в двоичный формат и сохранить их в файл. Вы также можете прочитать свои объекты из этого файла позже, что позволяет легко сохранять данные между сеансами.

«Легкий» — это не преувеличение; вот полный пример того, как добавить возможность травления в класс Python:

Давайте сломаем это! Здесь я определил класс данных StartupProfile (не волнуйтесь, стратегия идентична стандартному классу Python). В этом классе определены два метода: save_to_file и read_from_file.

Тела методов включают вызовы методов pickle dump и load для соответственно записи и чтения в файл. Поскольку травление — это сериализация в двоичный файл, мы открываем файл, используя аргументы «wb» и «rb» для записи и чтения в двоичном формате. Вот демонстрация этих методов в действии!

Как Pickle сравнивается с другими решениями:

Мариновать удобно! Но это не правильное решение всех проблем с сохраняемостью; есть недостатки, которые следует учитывать при использовании модуля pickle:

  1. Только для Python: Pickling — это формат сериализации, эксклюзивный для Python, и он не будет полезен, если вам нужно взаимодействовать с внешней службой, реализованной на другом языке. В этом сценарии рассмотрите возможность использования сериализации JSON!
  2. Уязвимость для атак: поскольку процесс травления работает путем преобразования объекта Python в двоичный файл и из него, существует неотъемлемая опасность выполнения произвольного кода всякий раз, когда вы читаете файл pickle в своей программе! Расшифровывайте только те данные, которым вы безоговорочно доверяете.

Заключение:

Pickling — отличный выбор для быстрого и простого хранения объектов Python в двоичном формате. Но вам нужно подумать, подходит ли ваш вариант использования для травления!

Если ваши сохраненные данные должны быть доступны для использования другими службами, вместо этого используйте сериализацию JSON или полноценную базу данных. Но до тех пор, пока доступ нужен только вашей программе, pickle предоставит все, что вам нужно!