Есть ли любая библиотека для десериализации с Python, который сериализируется с Java

Сервер Основы команды 2015 (на месте) и Visual Studio Team Services (облачная версия) включает встроенную поддержку поиска через весь Ваш код и объекты работы.

можно сделать поиски простой строки как foo, логические операции как foo OR bar или более сложные определенные для языка вещи как class:WebRequest

screenshot of code search filter syntax

, можно читать больше об этом здесь: https://www.visualstudio.com/en-us/docs/search/overview

12
задан Shiladittya Chakraborty 4 January 2016 в 07:31
поделиться

6 ответов

Сериализация Java является представлением класса / структуры данных и жестко привязаны к виртуальной машине. Следовательно, это будет сложно перевести в мир Python.

  1. Ваша программа на Java может сериализовать / десериализовать в XML, что будет переводимым. Ознакомьтесь с JAXB или XStream
  2. . Вы смотрели на возможность работы в Jython - реализации Python на Java
6
ответ дан 2 December 2019 в 07:21
поделиться

Двоичная сериализация Java действительно предназначена для использования с Java. Чтобы сделать это на Python, вам нужно иметь все соответствующие классы Java, доступные для проверки, и соответствующим образом создавать объекты Python - это было бы довольно ужасно и хрупко.

Лучше использовать кроссплатформенный формат сериализации, такой как как Thrift, Protocol Buffers, JSON или XML. Если вы не можете изменить формат сериализации, используемый в коде Java, я бы предложил написать новый код Java, который десериализуется из двоичного формата, а затем повторно сериализуется в кроссплатформенный формат.

5
ответ дан 2 December 2019 в 07:21
поделиться

Вы не говорите, есть ли у вас контроль над сериализацией данных или нет, но если вы это сделаете, JSON кажется чтобы быть приятным форматом, который является кроссплатформенным и имеет хороший баланс между удобочитаемостью и машиночитаемостью. Для java и , распространяемых вместе с python .

2
ответ дан 2 December 2019 в 07:21
поделиться

Другой вариант - использовать Perspective Broker из Twisted . Это реализация Java . Если вам просто нужна сериализация / десериализация, вы можете напрямую использовать только Banana (протокол) или Jelly (постоянство). Jelly - это персистентность объектов, основанная на S-выражении.

-1
ответ дан 2 December 2019 в 07:21
поделиться

Если вы используете классы Java, то я не Я даже не знаю, что значит десериализовать класс Java в среде Python. Если вы используете только простые примитивы (целые числа, числа с плавающей запятой, строки), то, вероятно, будет не так уж сложно создать библиотеку Python, которая могла бы десериализовать формат Java.

Но, как говорили другие, есть лучшие кросс- платформенные решения.

0
ответ дан 2 December 2019 в 07:21
поделиться

На вашем месте я бы прочитал данные с помощью Jython и либо повторно сериализовал их с помощью pickle (чтобы вы могли прочитать их из Python) или в формате, не зависящем от языка, например XML.

0
ответ дан 2 December 2019 в 07:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: