Как очистить массив, полученный из Java в Python через py4j? - PullRequest
0 голосов
/ 09 апреля 2019

Я написал этот простой код для запуска Java-класса из Python.Предполагается отправить длинную строку, выполнить некоторую предварительную обработку и вернуть массив Java, который содержит:

  1. исходную строку (статьи [0])
  2. строку после предварительной обработки (статьи[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])
...