使用 scala 读取 python pickle

Jul*_*enD 5 python scala pickle

我继承了一个数据库,其中的值存储为 Python pickled 对象。有没有办法在 Scala 中取消这些值(无需在内部调用 Python)?

Chr*_*tin 3

一般来说,您需要在内部调用 python,因为 pickle 允许类在 unpickling 时运行任意代码。(搜索“python pickle security”,您会发现很多有趣的讨论,说明为什么这意味着您不应该从不受信任的来源取消pickle。)

不过,我怀疑如果您的腌制数据中没有什么特别不寻常的情况,那么可以针对更常见的情况完成此操作。这个类似的问题有一个答案,建议使用一个名为Pyrolite的 Java 库。