Теоретически , это возможно. Сериализация Java, как и почти все в Javaland, стандартизирована. Таким образом, вы можете реализовать десериализатор в соответствии с этим стандартом в Python. Однако формат сериализации Java не предназначен для использования на нескольких языках, формат сериализации тесно связан с тем, как объекты представляются внутри JVM. Хотя реализация JVM в Python, безусловно, является увлекательным занятием, оно, вероятно, не то, что вы ищете (-:
Существуют и другие форматы сериализации (данных), специально разработанные с учетом языка. Обычно они работают, сокращая форматы данных до минимума (число, строка, последовательность, словарь и все) и, таким образом, требуют немного работы с обоих концов, чтобы представить богатый объект в виде графа глупых структур данных (и наоборот). Versa).
Два примера: JSON (нотация объектов JavaScript) и YAML (язык разметки YAML) .
ASN.1 (Абстрактная синтаксическая нотация номер один) - это другой формат сериализации данных. Вместо того, чтобы придавать формату форму, до которой его легко понять, ASN.1 самоописывает себя, то есть вся информация, необходимая для декодирования потока, кодируется в самом потоке.
И, конечно, XML (расширяемый язык разметки) также будет работать при условии, что он используется не только для предоставления текстового представления «дампа памяти» объекта Java, но и фактического абстрактное, не зависящее от языка кодирование.
Итак, короче говоря: лучше всего попытаться принудить log4j войти в один из вышеупомянутых форматов, заменить log4j чем-то, что делает это, или попытаться каким-то образом перехватить объекты, прежде чем они будут послал по телеграфу и переделал их перед тем как покинуть Джаваланд.
Библиотеки, в которых реализованы JSON, YAML, ASN.1 и XML, доступны как для Java, так и для Python (и почти для всех языков программирования, известных человеку).