Я написал этот простой код для запуска Java-класса из Python.Предполагается отправить длинную строку, выполнить некоторую предварительную обработку и вернуть массив Java, который содержит:
- исходную строку (статьи [0])
- строку после предварительной обработки (статьи[1]).
Он работает отлично, за исключением того, что он продолжает добавлять текущую строку ко всем предыдущим строкам во втором индексе «article [1]» без очистки, что не для «article [0]», который печатает толькотекущая строка.Я попытался снова закрыть и запустить и убедился, что он работает нормально в версии Java.Кроме того, я попытался перенести его в список «docs», чтобы сохранить его, а затем очистить массив в Python, когда я печатаю «aticles [1]», после чего я получаю его пустым, но при следующем запуске docs [1] по-прежнему имеет всепредыдущие очищенные строки.Ничего не сработало!
from py4j.java_gateway import JavaGateway
doc="A NEWS ARTICLES"
gateway = JavaGateway()
preprocess_app = gateway.entry_point
articles=preprocess_app.clean_article(doc)
#transfer it to python list
docs=list(articles)
articles[0]=""
articles[1]=""
#docs has all previous strings while articles[1] is empty
print(docs[1])
print(articles[1])