В чем заключается основное различие между pickle и yaml в Python?

Я наивна для Питона. Но я узнал, что оба они используются для сериализации и десериализации. Итак, я просто хочу знать, что все основные различия между ними?

2 Solutions collect form web for “В чем заключается основное различие между pickle и yaml в Python?”

YAML – это нейтральный по языку формат, который может представлять примитивные типы (int, string и т. Д.) И хорошо переносится между языками. Вид аналогичен JSON, XML или текстовому файлу; просто с некоторыми полезными соглашениями о форматировании, на самом деле, YAML является надмножеством JSON.

Формат Pickle специфичен для Python и может представлять широкий спектр структур данных и объектов, например, списки Python, наборы и словари; экземпляры классов Python; и комбинации этих подобных списков объектов; объекты, содержащие списки, содержащие списки; и т.п.

Итак, в основном:

  • YAML представляет собой простые типы данных и структуры в переносном языке
  • рассол может представлять сложные структуры, но не переносимым языком

Для этого есть нечто большее, но вы попросили «базовую» разницу.

pickle – это специальный формат сериализации python, когда объект python преобразуется в поток байтов и обратно:

«Травление» – это процесс, посредством которого иерархия объектов Python преобразуется в поток байтов, а «unpickling» – это обратная операция, посредством которой поток байтов преобразуется обратно в иерархию объектов.

Главное, что он специфичен для python.

С другой стороны, YAML является языковым агностическим и удобочитаемым форматом сериализации.

FYI, если вы выбираете между этими форматами, подумайте:

  • скорость сериализации / свертывания (см. модуль cPickle )
  • вам нужно хранить сериализованные файлы в удобочитаемой форме?
  • что вы собираетесь сериализовать? Например, если это сложная структура данных на основе python, тогда вы должны пойти с рассолом.

Смотрите также:

  • Сериализация Python – Почему рассол?
  • Легкий рассол для базовых типов в питоне?
  • YAML-файл url и скрипт в GAE python
  • Как установить пакет yaml для Python?
  • Python и PYAML - yaml.scanner.ScannerError: значения отображения здесь не допускаются
  • Преобразование файла YAML в python dict
  • Как я могу контролировать, какую скалярную форму PyYAML использует для моих данных?
  • PyYaml, объединяющий два файла yaml
  • принудительное сведение pyYAML
  • Синтаксис YAML для Salt и Python
  • Python - лучший язык программирования в мире.