Моя цель состоит в том, чтобы передать объект, который поддерживает протокол буфера, в генератор sha2 hashlib, чтобы хэши sha2, сгенерированные из одних и тех же базовых данных в разных средах выполнения, были согласованными, и поэтому их можно было использовать для тестов на равенство.
Я хотел бы, чтобы это работало для произвольных типов данных без необходимости писать кучу шаблонных оболочек вокруг bytes()
или bytearray()
, т. е. одну функцию, в которую я могу передавать строки (с кодировкой), числа и логические значения. Дополнительные баллы, если я смогу получить структуру памяти для сложного типа, такого как dict или list.
Я смотрю на struct
, а также делаю что-то вроде загрузки данных в pandas
DataFrame, а затем использую Apache Arrow для прямого доступа к макету памяти.
Ищете руководство относительно наиболее питонического способа сделать это.
mem_repr(x)
- person Alex Flanagan   schedule 01.12.2020pickle
не является ответом. Равные объекты могут создавать неодинаковые рассола. Например,{0, 16}
и{16, 0}
будут создавать разные рассола на текущем CPython.) - person user2357112 supports Monica   schedule 01.12.2020Ray has decided to use a customed Pickle protocol version 5 backport to replace the original PyArrow serializer. This gets rid of several previous limitations (e.g. cannot serialize recursive objects). Ray is currently compatible with Pickle protocol version 5, while Ray supports serialization of a wilder range of objects (e.g. lambda & nested functions, dynamic classes) with the support of cloudpickle.
Дал мне несколько идей. - person Alex Flanagan   schedule 01.12.2020