Если мариновать с помощью pickle, то следующий фрагмент работает. но если у меня есть дамп объекта с помощью укропа, dill.load не работает, потому что dill.load не принимает никаких encoding аргументов. есть ли способ сделать эту работу с помощью укропа?
with open(‘py2pickle.p’,'rb') as f
data = pickle.load(f, encoding='latin1')





Вы сделали dill.dump в python 2 и хотите сделать dill.load в python 3. Есть две проблемы:
нет никаких гарантий, независимо от того, что вы используя для сериализации, что рассольник будет работать с любой версией python, отличный от того, который вы использовали (например, 3.7 против 3.6 против 2.7).
как вы заметили, в настоящее время dill не имеет аргумента кодирования для load, поэтому вам, возможно, придется выполнить некоторое преобразование до/после dump/load объекта (непосредственно на самом объекте).
Обратите внимание, что в ближайшем будущем я добавлю больше аргументов опции сериализации к dump и load (включая аргумент encoding).
Обновлять:dill теперь имеет аргумент кодирования, а также другие аргументы, помогающие преобразовать pickle из 2.x в 3.x.
Я не знал, что ты укроп разработчик/мейнтейнер. Спасибо за отличную работу!!
Я только что добавил аргумент encoding и другие более поздние аргументы Python 3.x для чтения рассола из 2.x.
Неа. я сделал
dill.dumpв python2 и хочу загрузить его в python3