все Python 3pickleфункция
pickle.dumps()
сериализация
Превращает объект в bytes в формате pickle — для передачи между процессами, кэша или хранения в базе.
Синтаксис
data = pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None)
Возвращает bytes, а не str: в текстовое поле или JSON их без base64 не положить. Байты зависят от протокола, версии и даже порядка вставки ключей, поэтому сравнивать dumps(a) == dumps(b) вместо a == b нельзя — равные словари дают разные байты. Лямбды, генераторы, открытые файлы, соединения и блокировки не сериализуются. Обратная операция loads() исполняет код из данных — такие байты можно принимать только от себя.
Примеры
import pickle
print(type(pickle.dumps({'a': 1})).__name__) # → bytes
print(pickle.dumps({'a': 1, 'b': 2}) == pickle.dumps({'b': 2, 'a': 1})) # → False
try:
pickle.dumps(lambda x: x)
except pickle.PicklingError:
print('лямбду не сохранить') # → лямбду не сохранить
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности