#python #pickle #jpype #jaydebeapi
#python #рассол #jpype #jaydebeapi
Вопрос:
Я извлекаю данные из базы данных с использованием jaydebeapi
pkg . Я хочу сериализовать данные (они находятся в формате списка кортежей), используя pickle
.
Данные могут содержать разные типы классов java. Для определенного типа данных ( <java class 'java.lang.Integer'>
) я получаю следующее сообщение об ошибке:
PicklingError: Can't pickle <java class 'java.lang.Integer'>: it's not found as java.lang.java.lang.Integer
Есть ли какой-нибудь способ это исправить? Или есть какой-либо известный обходной путь?
Большое спасибо!
Комментарии:
1. Не могли бы вы добавить (выдержку) из вашей реализации? Мне кажется странным, что он ищет
java.lang.java.lang.Integer
.
Ответ №1:
Вы должны использовать модуль JPype Pickle вместо pickle .
from jpype.pickle import JPickler
Из документов:
Разрешены смешанные файлы рассола, содержащие объекты Java и Python.