有没有办法通过python反序列化Java对象?

时间:2018-10-16 06:55:00

标签: python

我有一个Java序列化的流。
我想使用python反序列化。

我尝试使用以下链接解决此问题: Is there a way to deserialize the java object via python

以上链接中建议的代码:

Namespaces

但是我收到此错误:

import javaobj    
import self

jobj = self.read_file("obj5.ser")
pobj = javaobj.loads(jobj)
print(pobj)

请建议我是否可以修改上面的代码,或者可以使用其他代码。

1 个答案:

答案 0 :(得分:0)

使用self意味着您正在从类内部调用函数。

编辑: 或者,您可以直接使用Unmarshaller对象:

import javaobj

with open("objCollections.ser") as fobj : 
    marshaller = javaobj.JavaObjectUnmarshaller(fobj)
    pobj = marshaller.readObject()

如您在文档中所见:

  

https://pypi.org/project/javaobj-py3/