Чем укроп отличается от модуля рассола Python? - PullRequest
0 голосов
/ 02 октября 2019

У меня есть большой объект в моем коде Python3, который при попытке протравить с помощью модуля pickle выдает следующую ошибку:

TypeError: cannot serialize '_io.BufferedReader' object

Однако, dill.dump() и dill.load() могутдля плавного сохранения и восстановления объекта.

  1. Что вызывает проблемы для модуля pickle?
  2. Теперь, когда dill сохраняет и восстанавливает объект без каких-либо ошибок, есть лиЛюбой способ проверить, прошли ли травление и расслоение с помощью dill хорошо?
  3. Как возможно, что pickle не удастся, но dill удастся?

1 Ответ

1 голос
/ 02 октября 2019

Я dill автор.

1) Проще всего посмотреть на этот файл: https://github.com/uqfoundation/dill/blob/master/dill/_objects.py, в нем перечислено, что pickle может сериализовать, а что dill может сериализовать.

2) выможно попробовать dill.copy и dill.check и dill.pickles, чтобы проверить различные уровни травления и расслоения.

3) dill построен на pickle и дополняет его, регистрируя новые функции сериализации.

...